<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Kyoto Cabinet: kclangc.h File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Kyoto Cabinet
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">kclangc.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>C language binding.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;ctype.h&gt;</code><br/>
<code>#include &lt;errno.h&gt;</code><br/>
<code>#include &lt;float.h&gt;</code><br/>
<code>#include &lt;limits.h&gt;</code><br/>
<code>#include &lt;locale.h&gt;</code><br/>
<code>#include &lt;math.h&gt;</code><br/>
<code>#include &lt;setjmp.h&gt;</code><br/>
<code>#include &lt;stdarg.h&gt;</code><br/>
<code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;signal.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;time.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCDB.html">KCDB</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of polymorphic database.  <a href="structKCDB.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCCUR.html">KCCUR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of polymorphic cursor.  <a href="structKCCUR.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCSTR.html">KCSTR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Binary string of byte array.  <a href="structKCSTR.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCREC.html">KCREC</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Key-Value record.  <a href="structKCREC.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCIDX.html">KCIDX</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of index database.  <a href="structKCIDX.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCMAP.html">KCMAP</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of memory-saving string hash map.  <a href="structKCMAP.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCMAPITER.html">KCMAPITER</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of iterator of memory-saving string hash map.  <a href="structKCMAPITER.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of sorter of memory-saving string hash map.  <a href="structKCMAPSORT.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structKCLIST.html">KCLIST</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">C wrapper of memory-saving string hash map.  <a href="structKCLIST.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aeb7e7a856ab7a794b05b6b63ef36ea3e">__STDC_LIMIT_MACROS</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">enable limit macros for C++  <a href="#aeb7e7a856ab7a794b05b6b63ef36ea3e"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef const char *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a> )(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz, size_t *sp, void *opq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call back function to visit a full record.  <a href="#ad5322730d6c138c6c32bd501fc2c09e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef const char *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ab81f0ec8b8a935f708fa60faadea86b2">KCVISITEMPTY</a> )(const char *kbuf, size_t ksiz, size_t *sp, void *opq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call back function to visit an empty record.  <a href="#ab81f0ec8b8a935f708fa60faadea86b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a> )(const char *path, int64_t count, int64_t size, void *opq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call back function to process the database file.  <a href="#a55e9f27415a9ee1d641cef35cc518b8f"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55bae63556b5f2db4514dbc65f5239c8ab93">KCESUCCESS</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55bab3f263d57aa936e9c779e36b41d85610">KCENOIMPL</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55bafbe5a2cf60834bee0e3c1f1be1112ce0">KCEINVALID</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55bafd68de6057f376ad27e665e87aa93b11">KCENOREPOS</a>, 
<br/>
&#160;&#160;<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55badcc02ab4f73e617e15187eb1a957e940">KCENOPERM</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa410ac67a3a382b82489f214760aac72">KCEBROKEN</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba57438217f0372508a82b67810b22a574">KCEDUPREC</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba733e62fc2f1bb695d01bdcc767d0cecc">KCENOREC</a>, 
<br/>
&#160;&#160;<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba356efe2c5d4bfd9eeb75ee624cf628ef">KCELOGIC</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55baa693fa4d5e7ddc6ef447ab7dd74bd2e9">KCESYSTEM</a>, 
<a class="el" href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba335ef8482ec4222a3451b581c16763df">KCEMISC</a> =  15
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes.  <a href="kclangc_8h.html#a06fc87d81c62e9abb8790b6e5713c55b">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a0f7b0c307ecf7f585c587c327dcf4dd0">KCOREADER</a> =  1 &lt;&lt; 0, 
<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a352bdce1311ada70fcaf2f22194cbbdf">KCOWRITER</a> =  1 &lt;&lt; 1, 
<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a8aae26396f1c8062f63ff6319430116f">KCOCREATE</a> =  1 &lt;&lt; 2, 
<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a9e0ac6a46aa682fb9715a9e85d1099c5">KCOTRUNCATE</a> =  1 &lt;&lt; 3, 
<br/>
&#160;&#160;<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ae56445cf7149ea1f695bc94cfdf3f4bc">KCOAUTOTRAN</a> =  1 &lt;&lt; 4, 
<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a15a52d713c51b5d93a73938b1b3371c6">KCOAUTOSYNC</a> =  1 &lt;&lt; 5, 
<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa4ba32fada5f28c0115b915eecdbcbeb">KCONOLOCK</a> =  1 &lt;&lt; 6, 
<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aba88ffe5dfdf69d1d53622a9ee413005">KCOTRYLOCK</a> =  1 &lt;&lt; 7, 
<br/>
&#160;&#160;<a class="el" href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a5fec9b7c910416b0f80dbbca897e5d82">KCONOREPAIR</a> =  1 &lt;&lt; 8
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open modes.  <a href="kclangc_8h.html#adf764cbdea00d65edcd07bb9953ad2b7">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="kclangc_8h.html#a99fb83031ce9923c84392b4e92f956b5a667ff146032bee5aad8d51689ea97586">KCMSET</a>, 
<a class="el" href="kclangc_8h.html#a99fb83031ce9923c84392b4e92f956b5a57460294be785b3fd21eeef5083c21fd">KCMADD</a>, 
<a class="el" href="kclangc_8h.html#a99fb83031ce9923c84392b4e92f956b5a9d1a001b2b5a859ab285edda8537c0ef">KCMREPLACE</a>, 
<a class="el" href="kclangc_8h.html#a99fb83031ce9923c84392b4e92f956b5a6af08f4fb0a0543d25c0469462195a8a">KCMAPPEND</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Merge modes.  <a href="kclangc_8h.html#a99fb83031ce9923c84392b4e92f956b5">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a30be9af70a790af59d7c8fb2e9aa7c20">kcmalloc</a> (size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a region on memory.  <a href="#a30be9af70a790af59d7c8fb2e9aa7c20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aba875623bd102d078eb328a1eb7bc0f6">kcfree</a> (void *ptr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a region allocated in the library.  <a href="#aba875623bd102d078eb328a1eb7bc0f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#acf8a78ec339dbdacb7451d7eaa2abb45">kctime</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the time of day in seconds.  <a href="#acf8a78ec339dbdacb7451d7eaa2abb45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a937d5246c18410ed598d9c061b04504a">kcatoi</a> (const char *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string to an integer.  <a href="#a937d5246c18410ed598d9c061b04504a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a585366f65f8332aa439e6b640823894f">kcatoix</a> (const char *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string with a metric prefix to an integer.  <a href="#a585366f65f8332aa439e6b640823894f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac89ecc6c9417a0f38ada1417b84adf04">kcatof</a> (const char *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string to a real number.  <a href="#ac89ecc6c9417a0f38ada1417b84adf04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a943ec205ec42c2ec60b7823f0b0769da">kchashmurmur</a> (const void *buf, size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the hash value by MurMur hashing.  <a href="#a943ec205ec42c2ec60b7823f0b0769da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a7a6541052e2e0810b11ef7e51a80da3f">kchashfnv</a> (const void *buf, size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the hash value by FNV hashing.  <a href="#a7a6541052e2e0810b11ef7e51a80da3f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a5ed77b66485288bc840818001acf7612">kclevdist</a> (const void *abuf, size_t asiz, const void *bbuf, size_t bsiz, int32_t utf)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the levenshtein distance of two regions.  <a href="#a5ed77b66485288bc840818001acf7612"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad1e7b041ebb62e5e08166d091c90b3e3">kcnan</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the quiet Not-a-Number value.  <a href="#ad1e7b041ebb62e5e08166d091c90b3e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a304f691cdbf2d9bb1cd14c789973c56a">kcinf</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the positive infinity value.  <a href="#a304f691cdbf2d9bb1cd14c789973c56a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a0b7d3cfd745e92ee2d9fe43f058b68c3">kcchknan</a> (double num)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check a number is a Not-a-Number value.  <a href="#a0b7d3cfd745e92ee2d9fe43f058b68c3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad237cdbe33ea8b918979bfbbb78b7d64">kcchkinf</a> (double num)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check a number is an infinity value.  <a href="#ad237cdbe33ea8b918979bfbbb78b7d64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a7c345d19eb7072e55e54091467d269d7">kcecodename</a> (int32_t code)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the readable string of an error code.  <a href="#a7c345d19eb7072e55e54091467d269d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a485c6993061575b14c4615988e694a15">kcdbnew</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a polymorphic database object.  <a href="#a485c6993061575b14c4615988e694a15"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a6bbf9098efff747475f6e9098a8a6844">kcdbdel</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a database object.  <a href="#a6bbf9098efff747475f6e9098a8a6844"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a464237fa818e4b70b15526a898b5c5f5">kcdbopen</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *path, uint32_t mode)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a database file.  <a href="#a464237fa818e4b70b15526a898b5c5f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#adbbfc05c79211f4f70f179579f4f3f00">kcdbclose</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database file.  <a href="#adbbfc05c79211f4f70f179579f4f3f00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a686a89045f646d5a7bbb87f264cd7e3a">kcdbecode</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the code of the last happened error.  <a href="#a686a89045f646d5a7bbb87f264cd7e3a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac0b1a4d349d567450437467155d43439">kcdbemsg</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the supplement message of the last happened error.  <a href="#ac0b1a4d349d567450437467155d43439"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a6bca0b4da37a96a6673e834567a7886a">kcdbaccept</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, <a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a> fullproc, <a class="el" href="kclangc_8h.html#ab81f0ec8b8a935f708fa60faadea86b2">KCVISITEMPTY</a> emptyproc, void *opq, int32_t writable)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept a visitor to a record.  <a href="#a6bca0b4da37a96a6673e834567a7886a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ae8653b6fe6aa800752d98cf9b64bdaf3">kcdbacceptbulk</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const <a class="el" href="structKCSTR.html">KCSTR</a> *keys, size_t knum, <a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a> fullproc, <a class="el" href="kclangc_8h.html#ab81f0ec8b8a935f708fa60faadea86b2">KCVISITEMPTY</a> emptyproc, void *opq, int32_t writable)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept a visitor to multiple records at once.  <a href="#ae8653b6fe6aa800752d98cf9b64bdaf3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a01828d3ba1b4e624683faea5311cfac0">kcdbiterate</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, <a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a> fullproc, void *opq, int32_t writable)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate to accept a visitor for each record.  <a href="#a01828d3ba1b4e624683faea5311cfac0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a41ad27f2b02cb46b065e6fe97bfe420b">kcdbscanpara</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, <a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a> fullproc, void *opq, size_t thnum)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scan each record in parallel.  <a href="#a41ad27f2b02cb46b065e6fe97bfe420b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#acc94df95a0d8863c450a649bdc546eaf">kcdbset</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#acc94df95a0d8863c450a649bdc546eaf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a73fe31f31713e4951c3b4392d1c0d818">kcdbadd</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a record.  <a href="#a73fe31f31713e4951c3b4392d1c0d818"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a14738a439d37fa7ea3d60a1a677834c8">kcdbreplace</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#a14738a439d37fa7ea3d60a1a677834c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a2c2b464eedd23c73690ef6824206aded">kcdbappend</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the value of a record.  <a href="#a2c2b464eedd23c73690ef6824206aded"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a1950ab399d070428f5e94c8b072f426f">kcdbincrint</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, int64_t num, int64_t orig)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a number to the numeric value of a record.  <a href="#a1950ab399d070428f5e94c8b072f426f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a0d2972a81ad646000c25d1b1697d4f00">kcdbincrdouble</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, double num, double orig)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a number to the numeric value of a record.  <a href="#a0d2972a81ad646000c25d1b1697d4f00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a68abb2471d1781a0aa6162ac2a0232e3">kcdbcas</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, const char *ovbuf, size_t ovsiz, const char *nvbuf, size_t nvsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform compare-and-swap.  <a href="#a68abb2471d1781a0aa6162ac2a0232e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aec78ac6dc641edb8f5dd74370f4010a6">kcdbremove</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#aec78ac6dc641edb8f5dd74370f4010a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ab552d20a2af1375b24aba34f412302d0">kcdbget</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#ab552d20a2af1375b24aba34f412302d0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a9d7264b2f7bd983d4b3702ad3870416d">kcdbcheck</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the existence of a record.  <a href="#a9d7264b2f7bd983d4b3702ad3870416d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac383a4611e359530c28d746d52112219">kcdbgetbuf</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, char *vbuf, size_t max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#ac383a4611e359530c28d746d52112219"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#afb7d8284ad023a7a9bdf52e1577c8ecf">kcdbseize</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record and remove it atomically.  <a href="#afb7d8284ad023a7a9bdf52e1577c8ecf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#adbdf012b34c9577d0fd45068c69332ff">kcdbsetbulk</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const <a class="el" href="structKCREC.html">KCREC</a> *recs, size_t rnum, int32_t atomic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Store records at once.  <a href="#adbdf012b34c9577d0fd45068c69332ff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#af1ba431e6f5fa69d4404f9bc4073422e">kcdbremovebulk</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const <a class="el" href="structKCSTR.html">KCSTR</a> *keys, size_t knum, int32_t atomic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove records at once.  <a href="#af1ba431e6f5fa69d4404f9bc4073422e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac137e6f8bb76319c951554a716919c48">kcdbgetbulk</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const <a class="el" href="structKCSTR.html">KCSTR</a> *keys, size_t knum, <a class="el" href="structKCREC.html">KCREC</a> *recs, int32_t atomic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve records at once.  <a href="#ac137e6f8bb76319c951554a716919c48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a8013c2ac28dcbde074cd2aa9a58aa72f">kcdbsync</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, int32_t hard, <a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a> proc, void *opq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize updated contents with the file and the device.  <a href="#a8013c2ac28dcbde074cd2aa9a58aa72f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a798c37d19ecc1cc14221bfe7e05d6c2d">kcdboccupy</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, int32_t writable, <a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a> proc, void *opq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Occupy database by locking and do something meanwhile.  <a href="#a798c37d19ecc1cc14221bfe7e05d6c2d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a9876214275221936d62b620f49b34570">kcdbcopy</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *dest)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a copy of the database file.  <a href="#a9876214275221936d62b620f49b34570"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a531f94f519cd35a5fc7bc1e0ef04ece8">kcdbbegintran</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, int32_t hard)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin transaction.  <a href="#a531f94f519cd35a5fc7bc1e0ef04ece8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#af00b9f2ed98722be9399d492e6c33a64">kcdbbegintrantry</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, int32_t hard)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to begin transaction.  <a href="#af00b9f2ed98722be9399d492e6c33a64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a288565a6579bc9125390c752be829804">kcdbendtran</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, int32_t commit)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">End transaction.  <a href="#a288565a6579bc9125390c752be829804"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a853dea5181512c82535be1c0e32f765f">kcdbclear</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all records.  <a href="#a853dea5181512c82535be1c0e32f765f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad2b07256a5236ba981be4a863ada8e43">kcdbdumpsnap</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *dest)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump records into a file.  <a href="#ad2b07256a5236ba981be4a863ada8e43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#af283ad00d5f46edd883356a4b3f9e979">kcdbloadsnap</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load records from a file.  <a href="#af283ad00d5f46edd883356a4b3f9e979"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#afa5d9b2da776853efae3abb20ad562c4">kcdbcount</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of records.  <a href="#afa5d9b2da776853efae3abb20ad562c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a278ea62b6ba5c9cabeadc77a1cde213c">kcdbsize</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the database file.  <a href="#a278ea62b6ba5c9cabeadc77a1cde213c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a87de7082c3f19fd255b431f0ccb92f44">kcdbpath</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the database file.  <a href="#a87de7082c3f19fd255b431f0ccb92f44"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a156561acce1ad4f2db9c00f1b5c01e7b">kcdbstatus</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the miscellaneous status information.  <a href="#a156561acce1ad4f2db9c00f1b5c01e7b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a8027a75ab70beebb345b1e6d7f7d63e9">kcdbmatchprefix</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *prefix, char **strary, size_t max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get keys matching a prefix string.  <a href="#a8027a75ab70beebb345b1e6d7f7d63e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a0433b985ddbca6cdb68830fdac047d8a">kcdbmatchregex</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *regex, char **strary, size_t max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get keys matching a regular expression string.  <a href="#a0433b985ddbca6cdb68830fdac047d8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#af600d7192bed661007f7e2094782fa10">kcdbmatchsimilar</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, const char *origin, uint32_t range, int32_t utf, char **strary, size_t max)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get keys similar to a string in terms of the levenshtein distance.  <a href="#af600d7192bed661007f7e2094782fa10"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a20e630cadb0b3518c13c9ca6cff60aed">kcdbmerge</a> (<a class="el" href="structKCDB.html">KCDB</a> *db, <a class="el" href="structKCDB.html">KCDB</a> **srcary, size_t srcnum, uint32_t mode)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Merge records from other databases.  <a href="#a20e630cadb0b3518c13c9ca6cff60aed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#adccaf4771f7804511791af33a316e0ba">kcdbcursor</a> (<a class="el" href="structKCDB.html">KCDB</a> *db)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a polymorphic cursor object.  <a href="#adccaf4771f7804511791af33a316e0ba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a88d85075827598fa94c6fd4c3430389f">kccurdel</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a cursor object.  <a href="#a88d85075827598fa94c6fd4c3430389f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a7ca1819141a1554397bbfede6d6f325e">kccuraccept</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, <a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a> fullproc, void *opq, int32_t writable, int32_t step)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept a visitor to the current record.  <a href="#a7ca1819141a1554397bbfede6d6f325e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#abf07e20809ce5927f81ed055e0c8c637">kccursetvalue</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, const char *vbuf, size_t vsiz, int32_t step)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of the current record.  <a href="#abf07e20809ce5927f81ed055e0c8c637"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a0867dbd783e2a23c1a6be653d8e41bdd">kccurremove</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the current record.  <a href="#a0867dbd783e2a23c1a6be653d8e41bdd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a1f15ef59f87b34eeeb4374c847d67b4b">kccurgetkey</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, size_t *sp, int32_t step)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the key of the current record.  <a href="#a1f15ef59f87b34eeeb4374c847d67b4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a5ebbb378e935cd773107503d7d4d466c">kccurgetvalue</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, size_t *sp, int32_t step)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the current record.  <a href="#a5ebbb378e935cd773107503d7d4d466c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a543b0095fb011f3ae42424460190d25a">kccurget</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, size_t *ksp, const char **vbp, size_t *vsp, int32_t step)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pair of the key and the value of the current record.  <a href="#a543b0095fb011f3ae42424460190d25a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a1cfe36e6e100984b0f0a496f22fcff57">kccurseize</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, size_t *ksp, const char **vbp, size_t *vsp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pair of the key and the value of the current record and remove it atomically.  <a href="#a1cfe36e6e100984b0f0a496f22fcff57"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a086c2e825133e414430ebd9fa010c9e0">kccurjump</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jump the cursor to the first record for forward scan.  <a href="#a086c2e825133e414430ebd9fa010c9e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a6b02b505678f971be270e3ba9a1b4d76">kccurjumpkey</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jump the cursor to a record for forward scan.  <a href="#a6b02b505678f971be270e3ba9a1b4d76"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aea97152d108e403d57d6de9b9b9c905c">kccurjumpback</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jump the cursor to the last record for backward scan.  <a href="#aea97152d108e403d57d6de9b9b9c905c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a6a64ab5f495da06c7361f010caa9371a">kccurjumpbackkey</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur, const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Jump the cursor to a record for backward scan.  <a href="#a6a64ab5f495da06c7361f010caa9371a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a8eb7192456824eaad2e15444704e9055">kccurstep</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Step the cursor to the next record.  <a href="#a8eb7192456824eaad2e15444704e9055"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#afeb16bd9461ab3f5dc2d21fa3ba28213">kccurstepback</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Step the cursor to the previous record.  <a href="#afeb16bd9461ab3f5dc2d21fa3ba28213"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a20a80ae0156692ad33cd0b8bfcf7eeab">kccurdb</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the database object.  <a href="#a20a80ae0156692ad33cd0b8bfcf7eeab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a479ed6830ab7fb85b146bff54f67df23">kccurecode</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the code of the last happened error.  <a href="#a479ed6830ab7fb85b146bff54f67df23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a46daaae1cd681d037e3f45fb6028f03c">kccuremsg</a> (<a class="el" href="structKCCUR.html">KCCUR</a> *cur)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the supplement message of the last happened error.  <a href="#a46daaae1cd681d037e3f45fb6028f03c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a4c3a7a5e0fec5f77b66c34f10bdb72f0">kcidxnew</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an index database object.  <a href="#a4c3a7a5e0fec5f77b66c34f10bdb72f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aca5bdd1e7f1f83ce610ada835686ccf1">kcidxdel</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a database object.  <a href="#aca5bdd1e7f1f83ce610ada835686ccf1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aba21cd8592159dbe940839595322e9d9">kcidxopen</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *path, uint32_t mode)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a database file.  <a href="#aba21cd8592159dbe940839595322e9d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aa5427b81b0d3aa636f3f12dcdf34a1ee">kcidxclose</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the database file.  <a href="#aa5427b81b0d3aa636f3f12dcdf34a1ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a85c6e16b690e3693ff97cf8e025f4713">kcidxecode</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the code of the last happened error.  <a href="#a85c6e16b690e3693ff97cf8e025f4713"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a199d0a9fc2806c8c7bfb99a242a37e96">kcidxemsg</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the supplement message of the last happened error.  <a href="#a199d0a9fc2806c8c7bfb99a242a37e96"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a7b62b6dd7f2cc4b856c338e1c4b9a310">kcidxset</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#a7b62b6dd7f2cc4b856c338e1c4b9a310"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aabc53127cbd1baca3d8f02a4aefb8bd1">kcidxadd</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a record.  <a href="#aabc53127cbd1baca3d8f02a4aefb8bd1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#afe7455a73583ff23c667efc8d288b528">kcidxreplace</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#afe7455a73583ff23c667efc8d288b528"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aef481e949500e55c5bed07da500b1a3e">kcidxappend</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the value of a record.  <a href="#aef481e949500e55c5bed07da500b1a3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a2ab33197891a20c64f6957cea9e539a9">kcidxremove</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#a2ab33197891a20c64f6957cea9e539a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad540c37d3fcb8d73fe54d622ca93aa73">kcidxget</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#ad540c37d3fcb8d73fe54d622ca93aa73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a637b170c68efe467537473067c5f3220">kcidxsync</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx, int32_t hard, <a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a> proc, void *opq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize updated contents with the file and the device.  <a href="#a637b170c68efe467537473067c5f3220"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a18e11b44bafb2dd93ed4859245d307ad">kcidxclear</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all records.  <a href="#a18e11b44bafb2dd93ed4859245d307ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac1e7aab80142837d31141d6fe863e6af">kcidxcount</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of records.  <a href="#ac1e7aab80142837d31141d6fe863e6af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a339b7dffd204463e0766b9026a40b71d">kcidxsize</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the database file.  <a href="#a339b7dffd204463e0766b9026a40b71d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad7047962dd3cfa4dc8304762776b2223">kcidxpath</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the database file.  <a href="#ad7047962dd3cfa4dc8304762776b2223"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#acd7a4fd193d77caff0fe136563327053">kcidxstatus</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the miscellaneous status information.  <a href="#acd7a4fd193d77caff0fe136563327053"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a82c6761ba8d14a2f9e7eb7c7da77d3c3">kcidxrevealinnerdb</a> (<a class="el" href="structKCIDX.html">KCIDX</a> *idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reveal the inner database object.  <a href="#a82c6761ba8d14a2f9e7eb7c7da77d3c3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aec6afb03c6a6609eca245447fe91902c">kcmapnew</a> (size_t bnum)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string hash map object.  <a href="#aec6afb03c6a6609eca245447fe91902c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad2e7538e61bdd240201ad30a0349a973">kcmapdel</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a map object.  <a href="#ad2e7538e61bdd240201ad30a0349a973"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a3cd73b1b4ed2429ad5baaef1b7d11da4">kcmapset</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a record.  <a href="#a3cd73b1b4ed2429ad5baaef1b7d11da4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a46b4c36a88440b8cfc212563214221a4">kcmapadd</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a record.  <a href="#a46b4c36a88440b8cfc212563214221a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a4a2c51212c27411ca2b71b66a86ed482">kcmapreplace</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the value of a record.  <a href="#a4a2c51212c27411ca2b71b66a86ed482"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#af1005c10566671604d9ed335df1a1b10">kcmapappend</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the value of a record.  <a href="#af1005c10566671604d9ed335df1a1b10"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad3e7c9142df5d21ed8f1964715c52711">kcmapremove</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map, const char *kbuf, size_t ksiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record.  <a href="#ad3e7c9142df5d21ed8f1964715c52711"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac9fb108d0134e439a601557eb9ec18c5">kcmapget</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map, const char *kbuf, size_t ksiz, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the value of a record.  <a href="#ac9fb108d0134e439a601557eb9ec18c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a4be91c8b73e45cd89ec61b7066d9d5de">kcmapclear</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all records.  <a href="#a4be91c8b73e45cd89ec61b7066d9d5de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aae4b3633b3373b1dbbf61fd784d60c31">kcmapcount</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of records.  <a href="#aae4b3633b3373b1dbbf61fd784d60c31"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCMAPITER.html">KCMAPITER</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#abcd34c88c2467f6d89afea605cbfe305">kcmapiterator</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string hash map iterator object.  <a href="#abcd34c88c2467f6d89afea605cbfe305"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a88ad0d468a0e202bf04d34ee92104cc3">kcmapiterdel</a> (<a class="el" href="structKCMAPITER.html">KCMAPITER</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy an iterator object.  <a href="#a88ad0d468a0e202bf04d34ee92104cc3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a11907a18c104aba1f246587c935e66c7">kcmapitergetkey</a> (<a class="el" href="structKCMAPITER.html">KCMAPITER</a> *iter, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the key of the current record.  <a href="#a11907a18c104aba1f246587c935e66c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a48479e75eacff4ed4220103b2d88424c">kcmapitergetvalue</a> (<a class="el" href="structKCMAPITER.html">KCMAPITER</a> *iter, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the current record.  <a href="#a48479e75eacff4ed4220103b2d88424c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ac736d5db9fe233947090f50a5b75754d">kcmapiterget</a> (<a class="el" href="structKCMAPITER.html">KCMAPITER</a> *iter, size_t *ksp, const char **vbp, size_t *vsp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pair of the key and the value of the current record.  <a href="#ac736d5db9fe233947090f50a5b75754d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ae2108c189f1309f3133ecd4ffd541dcc">kcmapiterstep</a> (<a class="el" href="structKCMAPITER.html">KCMAPITER</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Step the cursor to the next record.  <a href="#ae2108c189f1309f3133ecd4ffd541dcc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a037aeb1fefa0ac4ba3b6f98bbd162171">kcmapsorter</a> (<a class="el" href="structKCMAP.html">KCMAP</a> *map)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string hash map sorter object.  <a href="#a037aeb1fefa0ac4ba3b6f98bbd162171"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a76e1eea983984bb1d4c364d1e6472bca">kcmapsortdel</a> (<a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *sort)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy an sorter object.  <a href="#a76e1eea983984bb1d4c364d1e6472bca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#af23cc5f635d5c3d1f75c2fc5124f3a8c">kcmapsortgetkey</a> (<a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *sort, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the key of the current record.  <a href="#af23cc5f635d5c3d1f75c2fc5124f3a8c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aa2a70cb588d9dfe229bb3988732db172">kcmapsortgetvalue</a> (<a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *sort, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the current record.  <a href="#aa2a70cb588d9dfe229bb3988732db172"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aa8bae5baeeae1c7f1c29304dc541c9cd">kcmapsortget</a> (<a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *sort, size_t *ksp, const char **vbp, size_t *vsp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pair of the key and the value of the current record.  <a href="#aa8bae5baeeae1c7f1c29304dc541c9cd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a385064d2e20cd8b80bc339b4a6f8a453">kcmapsortstep</a> (<a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *sort)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Step the cursor to the next record.  <a href="#a385064d2e20cd8b80bc339b4a6f8a453"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a33d505914ab0dae7d6bff4499158f4e4">kclistnew</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string array list object.  <a href="#a33d505914ab0dae7d6bff4499158f4e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#aebc78e91b44a3f0fb13d12965135d036">kclistdel</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a list object.  <a href="#aebc78e91b44a3f0fb13d12965135d036"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a84c60beea70c341884029ab54cca0b51">kclistpush</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list, const char *buf, size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a record at the bottom of the list.  <a href="#a84c60beea70c341884029ab54cca0b51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a710e3c69e0e1b3e272822d054296ac92">kclistpop</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record at the bottom of the list.  <a href="#a710e3c69e0e1b3e272822d054296ac92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a2f271282438133f5212dd30b804684fb">kclistunshift</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list, const char *buf, size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a record at the top of the list.  <a href="#a2f271282438133f5212dd30b804684fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ad1e3b7f8de94f4e44231bb7d4f7b4307">kclistshift</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record at the top of the list.  <a href="#ad1e3b7f8de94f4e44231bb7d4f7b4307"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a3f15ce9cc39e2944ed7e4c0752ee47f6">kclistinsert</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list, const char *buf, size_t size, size_t idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a record at the position of the given index of the list.  <a href="#a3f15ce9cc39e2944ed7e4c0752ee47f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a36ee03aba754a22629054e0bc257857c">kclistremove</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list, size_t idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a record at the position of the given index of the list.  <a href="#a36ee03aba754a22629054e0bc257857c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ab71a366079883102f1f934f092f17b07">kclistget</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list, size_t idx, size_t *sp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a record at the position of the given index of the list.  <a href="#ab71a366079883102f1f934f092f17b07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#ae6561c06e7b4f1f8dc48c033bcde33b5">kclistclear</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all records.  <a href="#ae6561c06e7b4f1f8dc48c033bcde33b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a4a43f3fe5de2dd7d22aa9f788ff727aa">kclistcount</a> (<a class="el" href="structKCLIST.html">KCLIST</a> *list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of records.  <a href="#a4a43f3fe5de2dd7d22aa9f788ff727aa"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a2b538a7a564d0fbd9fe92d9877b4bcb0">KCVERSION</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The package version.  <a href="#a2b538a7a564d0fbd9fe92d9877b4bcb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a64c59ac34c88a862d2066d9097b09504">KCVISNOP</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Special pointer for no operation by the visiting function.  <a href="#a64c59ac34c88a862d2066d9097b09504"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kclangc_8h.html#a8db7ac3c4e7d52ee1106a527a1bae0c8">KCVISREMOVE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Special pointer to remove the record by the visiting function.  <a href="#a8db7ac3c4e7d52ee1106a527a1bae0c8"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>C language binding. </p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="aeb7e7a856ab7a794b05b6b63ef36ea3e"></a><!-- doxytag: member="kclangc.h::__STDC_LIMIT_MACROS" ref="aeb7e7a856ab7a794b05b6b63ef36ea3e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="kclangc_8h.html#aeb7e7a856ab7a794b05b6b63ef36ea3e">__STDC_LIMIT_MACROS</a>&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>enable limit macros for C++ </p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ad5322730d6c138c6c32bd501fc2c09e3"></a><!-- doxytag: member="kclangc.h::KCVISITFULL" ref="ad5322730d6c138c6c32bd501fc2c09e3" args=")(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz, size_t *sp, void *opq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef const char*(* <a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a>)(const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz, size_t *sp, void *opq)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call back function to visit a full record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>If it is the pointer to a region, the value is replaced by the content. If it is KCVISNOP, nothing is modified. If it is KCVISREMOVE, the record is removed. </dd></dl>

</div>
</div>
<a class="anchor" id="ab81f0ec8b8a935f708fa60faadea86b2"></a><!-- doxytag: member="kclangc.h::KCVISITEMPTY" ref="ab81f0ec8b8a935f708fa60faadea86b2" args=")(const char *kbuf, size_t ksiz, size_t *sp, void *opq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef const char*(* <a class="el" href="kclangc_8h.html#ab81f0ec8b8a935f708fa60faadea86b2">KCVISITEMPTY</a>)(const char *kbuf, size_t ksiz, size_t *sp, void *opq)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call back function to visit an empty record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>If it is the pointer to a region, the value is replaced by the content. If it is KCVISNOP or KCVISREMOVE, nothing is modified. </dd></dl>

</div>
</div>
<a class="anchor" id="a55e9f27415a9ee1d641cef35cc518b8f"></a><!-- doxytag: member="kclangc.h::KCFILEPROC" ref="a55e9f27415a9ee1d641cef35cc518b8f" args=")(const char *path, int64_t count, int64_t size, void *opq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int32_t(* <a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a>)(const char *path, int64_t count, int64_t size, void *opq)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call back function to process the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the path of the database file. </td></tr>
    <tr><td class="paramname">count</td><td>the number of records. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the available region. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55b"></a><!-- doxytag: member="kclangc.h::@0" ref="a06fc87d81c62e9abb8790b6e5713c55b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Error codes. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bae63556b5f2db4514dbc65f5239c8ab93"></a><!-- doxytag: member="KCESUCCESS" ref="a06fc87d81c62e9abb8790b6e5713c55bae63556b5f2db4514dbc65f5239c8ab93" args="" -->KCESUCCESS</em>&nbsp;</td><td>
<p>success </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bab3f263d57aa936e9c779e36b41d85610"></a><!-- doxytag: member="KCENOIMPL" ref="a06fc87d81c62e9abb8790b6e5713c55bab3f263d57aa936e9c779e36b41d85610" args="" -->KCENOIMPL</em>&nbsp;</td><td>
<p>not implemented </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bafbe5a2cf60834bee0e3c1f1be1112ce0"></a><!-- doxytag: member="KCEINVALID" ref="a06fc87d81c62e9abb8790b6e5713c55bafbe5a2cf60834bee0e3c1f1be1112ce0" args="" -->KCEINVALID</em>&nbsp;</td><td>
<p>invalid operation </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bafd68de6057f376ad27e665e87aa93b11"></a><!-- doxytag: member="KCENOREPOS" ref="a06fc87d81c62e9abb8790b6e5713c55bafd68de6057f376ad27e665e87aa93b11" args="" -->KCENOREPOS</em>&nbsp;</td><td>
<p>no repository </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55badcc02ab4f73e617e15187eb1a957e940"></a><!-- doxytag: member="KCENOPERM" ref="a06fc87d81c62e9abb8790b6e5713c55badcc02ab4f73e617e15187eb1a957e940" args="" -->KCENOPERM</em>&nbsp;</td><td>
<p>no permission </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55baa410ac67a3a382b82489f214760aac72"></a><!-- doxytag: member="KCEBROKEN" ref="a06fc87d81c62e9abb8790b6e5713c55baa410ac67a3a382b82489f214760aac72" args="" -->KCEBROKEN</em>&nbsp;</td><td>
<p>broken file </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba57438217f0372508a82b67810b22a574"></a><!-- doxytag: member="KCEDUPREC" ref="a06fc87d81c62e9abb8790b6e5713c55ba57438217f0372508a82b67810b22a574" args="" -->KCEDUPREC</em>&nbsp;</td><td>
<p>record duplication </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba733e62fc2f1bb695d01bdcc767d0cecc"></a><!-- doxytag: member="KCENOREC" ref="a06fc87d81c62e9abb8790b6e5713c55ba733e62fc2f1bb695d01bdcc767d0cecc" args="" -->KCENOREC</em>&nbsp;</td><td>
<p>no record </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba356efe2c5d4bfd9eeb75ee624cf628ef"></a><!-- doxytag: member="KCELOGIC" ref="a06fc87d81c62e9abb8790b6e5713c55ba356efe2c5d4bfd9eeb75ee624cf628ef" args="" -->KCELOGIC</em>&nbsp;</td><td>
<p>logical inconsistency </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55baa693fa4d5e7ddc6ef447ab7dd74bd2e9"></a><!-- doxytag: member="KCESYSTEM" ref="a06fc87d81c62e9abb8790b6e5713c55baa693fa4d5e7ddc6ef447ab7dd74bd2e9" args="" -->KCESYSTEM</em>&nbsp;</td><td>
<p>system error </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba335ef8482ec4222a3451b581c16763df"></a><!-- doxytag: member="KCEMISC" ref="a06fc87d81c62e9abb8790b6e5713c55ba335ef8482ec4222a3451b581c16763df" args="" -->KCEMISC</em>&nbsp;</td><td>
<p>miscellaneous error </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7"></a><!-- doxytag: member="kclangc.h::@1" ref="adf764cbdea00d65edcd07bb9953ad2b7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open modes. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a0f7b0c307ecf7f585c587c327dcf4dd0"></a><!-- doxytag: member="KCOREADER" ref="adf764cbdea00d65edcd07bb9953ad2b7a0f7b0c307ecf7f585c587c327dcf4dd0" args="" -->KCOREADER</em>&nbsp;</td><td>
<p>open as a reader </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a352bdce1311ada70fcaf2f22194cbbdf"></a><!-- doxytag: member="KCOWRITER" ref="adf764cbdea00d65edcd07bb9953ad2b7a352bdce1311ada70fcaf2f22194cbbdf" args="" -->KCOWRITER</em>&nbsp;</td><td>
<p>open as a writer </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a8aae26396f1c8062f63ff6319430116f"></a><!-- doxytag: member="KCOCREATE" ref="adf764cbdea00d65edcd07bb9953ad2b7a8aae26396f1c8062f63ff6319430116f" args="" -->KCOCREATE</em>&nbsp;</td><td>
<p>writer creating </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a9e0ac6a46aa682fb9715a9e85d1099c5"></a><!-- doxytag: member="KCOTRUNCATE" ref="adf764cbdea00d65edcd07bb9953ad2b7a9e0ac6a46aa682fb9715a9e85d1099c5" args="" -->KCOTRUNCATE</em>&nbsp;</td><td>
<p>writer truncating </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7ae56445cf7149ea1f695bc94cfdf3f4bc"></a><!-- doxytag: member="KCOAUTOTRAN" ref="adf764cbdea00d65edcd07bb9953ad2b7ae56445cf7149ea1f695bc94cfdf3f4bc" args="" -->KCOAUTOTRAN</em>&nbsp;</td><td>
<p>auto transaction </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a15a52d713c51b5d93a73938b1b3371c6"></a><!-- doxytag: member="KCOAUTOSYNC" ref="adf764cbdea00d65edcd07bb9953ad2b7a15a52d713c51b5d93a73938b1b3371c6" args="" -->KCOAUTOSYNC</em>&nbsp;</td><td>
<p>auto synchronization </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7aa4ba32fada5f28c0115b915eecdbcbeb"></a><!-- doxytag: member="KCONOLOCK" ref="adf764cbdea00d65edcd07bb9953ad2b7aa4ba32fada5f28c0115b915eecdbcbeb" args="" -->KCONOLOCK</em>&nbsp;</td><td>
<p>open without locking </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7aba88ffe5dfdf69d1d53622a9ee413005"></a><!-- doxytag: member="KCOTRYLOCK" ref="adf764cbdea00d65edcd07bb9953ad2b7aba88ffe5dfdf69d1d53622a9ee413005" args="" -->KCOTRYLOCK</em>&nbsp;</td><td>
<p>lock without blocking </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a5fec9b7c910416b0f80dbbca897e5d82"></a><!-- doxytag: member="KCONOREPAIR" ref="adf764cbdea00d65edcd07bb9953ad2b7a5fec9b7c910416b0f80dbbca897e5d82" args="" -->KCONOREPAIR</em>&nbsp;</td><td>
<p>open without auto repair </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5"></a><!-- doxytag: member="kclangc.h::@2" ref="a99fb83031ce9923c84392b4e92f956b5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Merge modes. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a667ff146032bee5aad8d51689ea97586"></a><!-- doxytag: member="KCMSET" ref="a99fb83031ce9923c84392b4e92f956b5a667ff146032bee5aad8d51689ea97586" args="" -->KCMSET</em>&nbsp;</td><td>
<p>overwrite the existing value </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a57460294be785b3fd21eeef5083c21fd"></a><!-- doxytag: member="KCMADD" ref="a99fb83031ce9923c84392b4e92f956b5a57460294be785b3fd21eeef5083c21fd" args="" -->KCMADD</em>&nbsp;</td><td>
<p>keep the existing value </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a9d1a001b2b5a859ab285edda8537c0ef"></a><!-- doxytag: member="KCMREPLACE" ref="a99fb83031ce9923c84392b4e92f956b5a9d1a001b2b5a859ab285edda8537c0ef" args="" -->KCMREPLACE</em>&nbsp;</td><td>
<p>modify the existing record only </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a6af08f4fb0a0543d25c0469462195a8a"></a><!-- doxytag: member="KCMAPPEND" ref="a99fb83031ce9923c84392b4e92f956b5a6af08f4fb0a0543d25c0469462195a8a" args="" -->KCMAPPEND</em>&nbsp;</td><td>
<p>append the new value </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a30be9af70a790af59d7c8fb2e9aa7c20"></a><!-- doxytag: member="kclangc.h::kcmalloc" ref="a30be9af70a790af59d7c8fb2e9aa7c20" args="(size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="kclangc_8h.html#a30be9af70a790af59d7c8fb2e9aa7c20">kcmalloc</a> </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocate a region on memory. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>the size of the region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the allocated region. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="aba875623bd102d078eb328a1eb7bc0f6"></a><!-- doxytag: member="kclangc.h::kcfree" ref="aba875623bd102d078eb328a1eb7bc0f6" args="(void *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#aba875623bd102d078eb328a1eb7bc0f6">kcfree</a> </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Release a region allocated in the library. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>the pointer to the region. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acf8a78ec339dbdacb7451d7eaa2abb45"></a><!-- doxytag: member="kclangc.h::kctime" ref="acf8a78ec339dbdacb7451d7eaa2abb45" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="kclangc_8h.html#acf8a78ec339dbdacb7451d7eaa2abb45">kctime</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the time of day in seconds. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the time of day in seconds. The accuracy is in microseconds. </dd></dl>

</div>
</div>
<a class="anchor" id="a937d5246c18410ed598d9c061b04504a"></a><!-- doxytag: member="kclangc.h::kcatoi" ref="a937d5246c18410ed598d9c061b04504a" args="(const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a937d5246c18410ed598d9c061b04504a">kcatoi</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert a string to an integer. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>specifies the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the integer. If the string does not contain numeric expression, 0 is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="a585366f65f8332aa439e6b640823894f"></a><!-- doxytag: member="kclangc.h::kcatoix" ref="a585366f65f8332aa439e6b640823894f" args="(const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a585366f65f8332aa439e6b640823894f">kcatoix</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert a string with a metric prefix to an integer. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string, which can be trailed by a binary metric prefix. "K", "M", "G", "T", "P", and "E" are supported. They are case-insensitive. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the integer. If the string does not contain numeric expression, 0 is returned. If the integer overflows the domain, INT64_MAX or INT64_MIN is returned according to the sign. </dd></dl>

</div>
</div>
<a class="anchor" id="ac89ecc6c9417a0f38ada1417b84adf04"></a><!-- doxytag: member="kclangc.h::kcatof" ref="ac89ecc6c9417a0f38ada1417b84adf04" args="(const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="kclangc_8h.html#ac89ecc6c9417a0f38ada1417b84adf04">kcatof</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert a string to a real number. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>specifies the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the real number. If the string does not contain numeric expression, 0.0 is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="a943ec205ec42c2ec60b7823f0b0769da"></a><!-- doxytag: member="kclangc.h::kchashmurmur" ref="a943ec205ec42c2ec60b7823f0b0769da" args="(const void *buf, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t <a class="el" href="kclangc_8h.html#a943ec205ec42c2ec60b7823f0b0769da">kchashmurmur</a> </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the hash value by MurMur hashing. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>the source buffer. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the source buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the hash value. </dd></dl>

</div>
</div>
<a class="anchor" id="a7a6541052e2e0810b11ef7e51a80da3f"></a><!-- doxytag: member="kclangc.h::kchashfnv" ref="a7a6541052e2e0810b11ef7e51a80da3f" args="(const void *buf, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t <a class="el" href="kclangc_8h.html#a7a6541052e2e0810b11ef7e51a80da3f">kchashfnv</a> </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the hash value by FNV hashing. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>the source buffer. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the source buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the hash value. </dd></dl>

</div>
</div>
<a class="anchor" id="a5ed77b66485288bc840818001acf7612"></a><!-- doxytag: member="kclangc.h::kclevdist" ref="a5ed77b66485288bc840818001acf7612" args="(const void *abuf, size_t asiz, const void *bbuf, size_t bsiz, int32_t utf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="kclangc_8h.html#a5ed77b66485288bc840818001acf7612">kclevdist</a> </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>abuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>asiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>bbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bsiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>utf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculate the levenshtein distance of two regions. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">abuf</td><td>the pointer to the region of one buffer. </td></tr>
    <tr><td class="paramname">asiz</td><td>the size of the region of one buffer. </td></tr>
    <tr><td class="paramname">bbuf</td><td>the pointer to the region of the other buffer. </td></tr>
    <tr><td class="paramname">bsiz</td><td>the size of the region of the other buffer. </td></tr>
    <tr><td class="paramname">utf</td><td>flag to treat keys as UTF-8 strings. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the levenshtein distance of two regions. </dd></dl>

</div>
</div>
<a class="anchor" id="ad1e7b041ebb62e5e08166d091c90b3e3"></a><!-- doxytag: member="kclangc.h::kcnan" ref="ad1e7b041ebb62e5e08166d091c90b3e3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="kclangc_8h.html#ad1e7b041ebb62e5e08166d091c90b3e3">kcnan</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the quiet Not-a-Number value. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the quiet Not-a-Number value. </dd></dl>

</div>
</div>
<a class="anchor" id="a304f691cdbf2d9bb1cd14c789973c56a"></a><!-- doxytag: member="kclangc.h::kcinf" ref="a304f691cdbf2d9bb1cd14c789973c56a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="kclangc_8h.html#a304f691cdbf2d9bb1cd14c789973c56a">kcinf</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the positive infinity value. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the positive infinity value. </dd></dl>

</div>
</div>
<a class="anchor" id="a0b7d3cfd745e92ee2d9fe43f058b68c3"></a><!-- doxytag: member="kclangc.h::kcchknan" ref="a0b7d3cfd745e92ee2d9fe43f058b68c3" args="(double num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a0b7d3cfd745e92ee2d9fe43f058b68c3">kcchknan</a> </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>num</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check a number is a Not-a-Number value. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for the number is a Not-a-Number value, or false if not. </dd></dl>

</div>
</div>
<a class="anchor" id="ad237cdbe33ea8b918979bfbbb78b7d64"></a><!-- doxytag: member="kclangc.h::kcchkinf" ref="ad237cdbe33ea8b918979bfbbb78b7d64" args="(double num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#ad237cdbe33ea8b918979bfbbb78b7d64">kcchkinf</a> </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>num</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check a number is an infinity value. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for the number is an infinity value, or false if not. </dd></dl>

</div>
</div>
<a class="anchor" id="a7c345d19eb7072e55e54091467d269d7"></a><!-- doxytag: member="kclangc.h::kcecodename" ref="a7c345d19eb7072e55e54091467d269d7" args="(int32_t code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#a7c345d19eb7072e55e54091467d269d7">kcecodename</a> </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>code</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the readable string of an error code. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">code</td><td>the error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the readable string of the error code. </dd></dl>

</div>
</div>
<a class="anchor" id="a485c6993061575b14c4615988e694a15"></a><!-- doxytag: member="kclangc.h::kcdbnew" ref="a485c6993061575b14c4615988e694a15" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCDB.html">KCDB</a>* <a class="el" href="kclangc_8h.html#a485c6993061575b14c4615988e694a15">kcdbnew</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a polymorphic database object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the created database object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kcdbdel function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a6bbf9098efff747475f6e9098a8a6844"></a><!-- doxytag: member="kclangc.h::kcdbdel" ref="a6bbf9098efff747475f6e9098a8a6844" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a6bbf9098efff747475f6e9098a8a6844">kcdbdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a database object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>the database object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a464237fa818e4b70b15526a898b5c5f5"></a><!-- doxytag: member="kclangc.h::kcdbopen" ref="a464237fa818e4b70b15526a898b5c5f5" args="(KCDB *db, const char *path, uint32_t mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a464237fa818e4b70b15526a898b5c5f5">kcdbopen</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open a database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">path</td><td>the path of a database file. If it is "-", the database will be a prototype hash database. If it is "+", the database will be a prototype tree database. If it is ":", the database will be a stash database. If it is "*", the database will be a cache hash database. If it is "%", the database will be a cache tree database. If its suffix is ".kch", the database will be a file hash database. If its suffix is ".kct", the database will be a file tree database. If its suffix is ".kcd", the database will be a directory hash database. If its suffix is ".kcf", the database will be a directory tree database. If its suffix is ".kcx", the database will be a plain text database. Otherwise, this function fails. Tuning parameters can trail the name, separated by "#". Each parameter is composed of the name and the value, separated by "=". If the "type" parameter is specified, the database type is determined by the value in "-", "+", ":", "*", "%", "kch", "kct", "kcd", kcf", and "kcx".  All database types support the logging parameters of "log",
 "logkinds", and "logpx".  The prototype hash database and the prototype tree database do
 not support any other tuning parameter.  The stash database supports "bnum".  The cache
 hash database supports "opts", "bnum", "zcomp", "capcnt", "capsiz", and "zkey". The cache tree database supports all parameters of the cache hash database except for capacity limitation, and supports "psiz", "rcomp", "pccap" in addition. The file hash database supports "apow", "fpow", "opts", "bnum", "msiz", "dfunit", "zcomp", and "zkey". The file tree database supports all parameters of the file hash database and "psiz", "rcomp", "pccap" in addition. The directory hash database supports "opts", "zcomp", and "zkey". The directory tree database supports all parameters of the directory hash database and "psiz", "rcomp", "pccap" in addition. The plain text database does not support any other tuning parameter. </td></tr>
    <tr><td class="paramname">mode</td><td>the connection mode. KCOWRITER as a writer, KCOREADER as a reader. The following may be added to the writer mode by bitwise-or: KCOCREATE, which means it creates a new database if the file does not exist, KCOTRUNCATE, which means it creates a new database regardless if the file exists, KCOAUTOTRAN, which means each updating operation is performed in implicit transaction, KCOAUTOSYNC, which means each updating operation is followed by implicit synchronization with the file system. The following may be added to both of the reader mode and the writer mode by bitwise-or: KCONOLOCK, which means it opens the database file without file locking, KCOTRYLOCK, which means locking is performed without blocking, KCONOREPAIR, which means the database file is not repaired implicitly even if file destruction is detected. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The tuning parameter "log" is for the original "tune_logger" and the value specifies the path of the log file, or "-" for the standard output, or "+" for the standard error. "logkinds" specifies kinds of logged messages and the value can be "debug", "info", "warn", or "error". "logpx" specifies the prefix of each log message. "opts" is for "tune_options" and the value can contain "s" for the small option, "l" for the linear option, and "c" for the compress option. "bnum" corresponds to "tune_bucket". "zcomp" is for "tune_compressor" and the value can be "zlib" for the ZLIB raw compressor, "def" for the ZLIB deflate compressor, "gz" for the ZLIB gzip compressor, "lzo" for the LZO compressor, "lzma" for the LZMA compressor, or "arc" for the Arcfour cipher. "zkey" specifies the cipher key of the compressor. "capcount" is for "cap_count". "capsize" is for "cap_size". "psiz" is for "tune_page". "rcomp" is for "tune_comparator" and the value can be "lex" for the lexical comparator or "dec" for the decimal comparator. "pccap" is for "tune_page_cache". "apow" is for "tune_alignment". "fpow" is for "tune_fbp". "msiz" is for "tune_map". "dfunit" is for "tune_defrag". Every opened database must be closed by the kcdbclose method when it is no longer in use. It is not allowed for two or more database objects in the same process to keep their connections to the same database file at the same time. </dd></dl>

</div>
</div>
<a class="anchor" id="adbbfc05c79211f4f70f179579f4f3f00"></a><!-- doxytag: member="kclangc.h::kcdbclose" ref="adbbfc05c79211f4f70f179579f4f3f00" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#adbbfc05c79211f4f70f179579f4f3f00">kcdbclose</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a686a89045f646d5a7bbb87f264cd7e3a"></a><!-- doxytag: member="kclangc.h::kcdbecode" ref="a686a89045f646d5a7bbb87f264cd7e3a" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a686a89045f646d5a7bbb87f264cd7e3a">kcdbecode</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the code of the last happened error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the code of the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="ac0b1a4d349d567450437467155d43439"></a><!-- doxytag: member="kclangc.h::kcdbemsg" ref="ac0b1a4d349d567450437467155d43439" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#ac0b1a4d349d567450437467155d43439">kcdbemsg</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the supplement message of the last happened error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the supplement message of the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="a6bca0b4da37a96a6673e834567a7886a"></a><!-- doxytag: member="kclangc.h::kcdbaccept" ref="a6bca0b4da37a96a6673e834567a7886a" args="(KCDB *db, const char *kbuf, size_t ksiz, KCVISITFULL fullproc, KCVISITEMPTY emptyproc, void *opq, int32_t writable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a6bca0b4da37a96a6673e834567a7886a">kcdbaccept</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a>&#160;</td>
          <td class="paramname"><em>fullproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ab81f0ec8b8a935f708fa60faadea86b2">KCVISITEMPTY</a>&#160;</td>
          <td class="paramname"><em>emptyproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>writable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept a visitor to a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">fullproc</td><td>a call back function to visit a record. </td></tr>
    <tr><td class="paramname">emptyproc</td><td>a call back function to visit an empty record space. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back functions. </td></tr>
    <tr><td class="paramname">writable</td><td>true for writable operation, or false for read-only operation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation for each record is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="ae8653b6fe6aa800752d98cf9b64bdaf3"></a><!-- doxytag: member="kclangc.h::kcdbacceptbulk" ref="ae8653b6fe6aa800752d98cf9b64bdaf3" args="(KCDB *db, const KCSTR *keys, size_t knum, KCVISITFULL fullproc, KCVISITEMPTY emptyproc, void *opq, int32_t writable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#ae8653b6fe6aa800752d98cf9b64bdaf3">kcdbacceptbulk</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structKCSTR.html">KCSTR</a> *&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a>&#160;</td>
          <td class="paramname"><em>fullproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ab81f0ec8b8a935f708fa60faadea86b2">KCVISITEMPTY</a>&#160;</td>
          <td class="paramname"><em>emptyproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>writable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept a visitor to multiple records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">keys</td><td>specifies an array of binary strings of the keys. </td></tr>
    <tr><td class="paramname">knum</td><td>specifies the number of the keys. </td></tr>
    <tr><td class="paramname">fullproc</td><td>a call back function to visit a record. </td></tr>
    <tr><td class="paramname">emptyproc</td><td>a call back function to visit an empty record space. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back functions. </td></tr>
    <tr><td class="paramname">writable</td><td>true for writable operation, or false for read-only operation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operations for specified records are performed atomically and other threads accessing the same records are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="a01828d3ba1b4e624683faea5311cfac0"></a><!-- doxytag: member="kclangc.h::kcdbiterate" ref="a01828d3ba1b4e624683faea5311cfac0" args="(KCDB *db, KCVISITFULL fullproc, void *opq, int32_t writable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a01828d3ba1b4e624683faea5311cfac0">kcdbiterate</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a>&#160;</td>
          <td class="paramname"><em>fullproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>writable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterate to accept a visitor for each record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">fullproc</td><td>a call back function to visit a record. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back function. </td></tr>
    <tr><td class="paramname">writable</td><td>true for writable operation, or false for read-only operation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The whole iteration is performed atomically and other threads are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="a41ad27f2b02cb46b065e6fe97bfe420b"></a><!-- doxytag: member="kclangc.h::kcdbscanpara" ref="a41ad27f2b02cb46b065e6fe97bfe420b" args="(KCDB *db, KCVISITFULL fullproc, void *opq, size_t thnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a41ad27f2b02cb46b065e6fe97bfe420b">kcdbscanpara</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a>&#160;</td>
          <td class="paramname"><em>fullproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>thnum</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scan each record in parallel. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">fullproc</td><td>a call back function to visit a record. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back function. </td></tr>
    <tr><td class="paramname">thnum</td><td>the number of worker threads. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function is for reading records and not for updating ones. The return value of the visitor is just ignored. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="acc94df95a0d8863c450a649bdc546eaf"></a><!-- doxytag: member="kclangc.h::kcdbset" ref="acc94df95a0d8863c450a649bdc546eaf" args="(KCDB *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#acc94df95a0d8863c450a649bdc546eaf">kcdbset</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the value is overwritten. </dd></dl>

</div>
</div>
<a class="anchor" id="a73fe31f31713e4951c3b4392d1c0d818"></a><!-- doxytag: member="kclangc.h::kcdbadd" ref="a73fe31f31713e4951c3b4392d1c0d818" args="(KCDB *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a73fe31f31713e4951c3b4392d1c0d818">kcdbadd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the record is not modified and false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="a14738a439d37fa7ea3d60a1a677834c8"></a><!-- doxytag: member="kclangc.h::kcdbreplace" ref="a14738a439d37fa7ea3d60a1a677834c8" args="(KCDB *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a14738a439d37fa7ea3d60a1a677834c8">kcdbreplace</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, no new record is created and false is returned. If the corresponding record exists, the value is modified. </dd></dl>

</div>
</div>
<a class="anchor" id="a2c2b464eedd23c73690ef6824206aded"></a><!-- doxytag: member="kclangc.h::kcdbappend" ref="a2c2b464eedd23c73690ef6824206aded" args="(KCDB *db, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a2c2b464eedd23c73690ef6824206aded">kcdbappend</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the given value is appended at the end of the existing value. </dd></dl>

</div>
</div>
<a class="anchor" id="a1950ab399d070428f5e94c8b072f426f"></a><!-- doxytag: member="kclangc.h::kcdbincrint" ref="a1950ab399d070428f5e94c8b072f426f" args="(KCDB *db, const char *kbuf, size_t ksiz, int64_t num, int64_t orig)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a1950ab399d070428f5e94c8b072f426f">kcdbincrint</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>orig</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a number to the numeric value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">num</td><td>the additional number. </td></tr>
    <tr><td class="paramname">orig</td><td>the origin number if no record corresponds to the key. If it is INT64_MIN and no record corresponds, this function fails. If it is INT64_MAX, the value is set as the additional number regardless of the current value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the result value, or INT64_MIN on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The value is serialized as an 8-byte binary integer in big-endian order, not a decimal string. If existing value is not 8-byte, this function fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a0d2972a81ad646000c25d1b1697d4f00"></a><!-- doxytag: member="kclangc.h::kcdbincrdouble" ref="a0d2972a81ad646000c25d1b1697d4f00" args="(KCDB *db, const char *kbuf, size_t ksiz, double num, double orig)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="kclangc_8h.html#a0d2972a81ad646000c25d1b1697d4f00">kcdbincrdouble</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>orig</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a number to the numeric value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">num</td><td>the additional number. </td></tr>
    <tr><td class="paramname">orig</td><td>the origin number if no record corresponds to the key. If it is negative infinity and no record corresponds, this function fails. If it is positive infinity, the value is set as the additional number regardless of the current value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the result value, or Not-a-number on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The value is serialized as an 16-byte binary fixed-point number in big-endian order, not a decimal string. If existing value is not 16-byte, this function fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a68abb2471d1781a0aa6162ac2a0232e3"></a><!-- doxytag: member="kclangc.h::kcdbcas" ref="a68abb2471d1781a0aa6162ac2a0232e3" args="(KCDB *db, const char *kbuf, size_t ksiz, const char *ovbuf, size_t ovsiz, const char *nvbuf, size_t nvsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a68abb2471d1781a0aa6162ac2a0232e3">kcdbcas</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ovbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ovsiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>nvbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nvsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform compare-and-swap. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">ovbuf</td><td>the pointer to the old value region. NULL means that no record corresponds. </td></tr>
    <tr><td class="paramname">ovsiz</td><td>the size of the old value region. </td></tr>
    <tr><td class="paramname">nvbuf</td><td>the pointer to the new value region. NULL means that the record is removed. </td></tr>
    <tr><td class="paramname">nvsiz</td><td>the size of new old value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aec78ac6dc641edb8f5dd74370f4010a6"></a><!-- doxytag: member="kclangc.h::kcdbremove" ref="aec78ac6dc641edb8f5dd74370f4010a6" args="(KCDB *db, const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#aec78ac6dc641edb8f5dd74370f4010a6">kcdbremove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="ab552d20a2af1375b24aba34f412302d0"></a><!-- doxytag: member="kclangc.h::kcdbget" ref="ab552d20a2af1375b24aba34f412302d0" args="(KCDB *db, const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#ab552d20a2af1375b24aba34f412302d0">kcdbget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a9d7264b2f7bd983d4b3702ad3870416d"></a><!-- doxytag: member="kclangc.h::kcdbcheck" ref="a9d7264b2f7bd983d4b3702ad3870416d" args="(KCDB *db, const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a9d7264b2f7bd983d4b3702ad3870416d">kcdbcheck</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check the existence of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the value, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ac383a4611e359530c28d746d52112219"></a><!-- doxytag: member="kclangc.h::kcdbgetbuf" ref="ac383a4611e359530c28d746d52112219" args="(KCDB *db, const char *kbuf, size_t ksiz, char *vbuf, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#ac383a4611e359530c28d746d52112219">kcdbgetbuf</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the buffer into which the value of the corresponding record is written. </td></tr>
    <tr><td class="paramname">max</td><td>the size of the buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the value, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="afb7d8284ad023a7a9bdf52e1577c8ecf"></a><!-- doxytag: member="kclangc.h::kcdbseize" ref="afb7d8284ad023a7a9bdf52e1577c8ecf" args="(KCDB *db, const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#afb7d8284ad023a7a9bdf52e1577c8ecf">kcdbseize</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record and remove it atomically. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="adbdf012b34c9577d0fd45068c69332ff"></a><!-- doxytag: member="kclangc.h::kcdbsetbulk" ref="adbdf012b34c9577d0fd45068c69332ff" args="(KCDB *db, const KCREC *recs, size_t rnum, int32_t atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#adbdf012b34c9577d0fd45068c69332ff">kcdbsetbulk</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structKCREC.html">KCREC</a> *&#160;</td>
          <td class="paramname"><em>recs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>rnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>atomic</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">recs</td><td>the records to store. </td></tr>
    <tr><td class="paramname">rnum</td><td>specifies the number of the records. </td></tr>
    <tr><td class="paramname">atomic</td><td>true to perform all operations atomically, or false for non-atomic operations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of stored records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af1ba431e6f5fa69d4404f9bc4073422e"></a><!-- doxytag: member="kclangc.h::kcdbremovebulk" ref="af1ba431e6f5fa69d4404f9bc4073422e" args="(KCDB *db, const KCSTR *keys, size_t knum, int32_t atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#af1ba431e6f5fa69d4404f9bc4073422e">kcdbremovebulk</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structKCSTR.html">KCSTR</a> *&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>atomic</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">keys</td><td>the keys of the records to remove. </td></tr>
    <tr><td class="paramname">knum</td><td>specifies the number of the keys. </td></tr>
    <tr><td class="paramname">atomic</td><td>true to perform all operations atomically, or false for non-atomic operations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of removed records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ac137e6f8bb76319c951554a716919c48"></a><!-- doxytag: member="kclangc.h::kcdbgetbulk" ref="ac137e6f8bb76319c951554a716919c48" args="(KCDB *db, const KCSTR *keys, size_t knum, KCREC *recs, int32_t atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#ac137e6f8bb76319c951554a716919c48">kcdbgetbulk</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structKCSTR.html">KCSTR</a> *&#160;</td>
          <td class="paramname"><em>keys</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>knum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structKCREC.html">KCREC</a> *&#160;</td>
          <td class="paramname"><em>recs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>atomic</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve records at once. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">keys</td><td>the keys of the records to retrieve. </td></tr>
    <tr><td class="paramname">knum</td><td>specifies the number of the keys. </td></tr>
    <tr><td class="paramname">recs</td><td>an array to contain the result. Its size must be sufficient. </td></tr>
    <tr><td class="paramname">atomic</td><td>true to perform all operations atomically, or false for non-atomic operations. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of retrieved records, or -1 on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The regions of the key and the value of each element of the result should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a8013c2ac28dcbde074cd2aa9a58aa72f"></a><!-- doxytag: member="kclangc.h::kcdbsync" ref="a8013c2ac28dcbde074cd2aa9a58aa72f" args="(KCDB *db, int32_t hard, KCFILEPROC proc, void *opq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a8013c2ac28dcbde074cd2aa9a58aa72f">kcdbsync</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>hard</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a>&#160;</td>
          <td class="paramname"><em>proc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synchronize updated contents with the file and the device. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
    <tr><td class="paramname">proc</td><td>a postprocessor call back function. If it is NULL, no postprocessing is performed. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation of the postprocessor is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="a798c37d19ecc1cc14221bfe7e05d6c2d"></a><!-- doxytag: member="kclangc.h::kcdboccupy" ref="a798c37d19ecc1cc14221bfe7e05d6c2d" args="(KCDB *db, int32_t writable, KCFILEPROC proc, void *opq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a798c37d19ecc1cc14221bfe7e05d6c2d">kcdboccupy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>writable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a>&#160;</td>
          <td class="paramname"><em>proc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Occupy database by locking and do something meanwhile. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">writable</td><td>true to use writer lock, or false to use reader lock. </td></tr>
    <tr><td class="paramname">proc</td><td>a processor object. If it is NULL, no processing is performed. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation of the processor is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="a9876214275221936d62b620f49b34570"></a><!-- doxytag: member="kclangc.h::kcdbcopy" ref="a9876214275221936d62b620f49b34570" args="(KCDB *db, const char *dest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a9876214275221936d62b620f49b34570">kcdbcopy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a copy of the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">dest</td><td>the path of the destination file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a531f94f519cd35a5fc7bc1e0ef04ece8"></a><!-- doxytag: member="kclangc.h::kcdbbegintran" ref="a531f94f519cd35a5fc7bc1e0ef04ece8" args="(KCDB *db, int32_t hard)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a531f94f519cd35a5fc7bc1e0ef04ece8">kcdbbegintran</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>hard</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Begin transaction. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af00b9f2ed98722be9399d492e6c33a64"></a><!-- doxytag: member="kclangc.h::kcdbbegintrantry" ref="af00b9f2ed98722be9399d492e6c33a64" args="(KCDB *db, int32_t hard)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#af00b9f2ed98722be9399d492e6c33a64">kcdbbegintrantry</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>hard</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Try to begin transaction. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a288565a6579bc9125390c752be829804"></a><!-- doxytag: member="kclangc.h::kcdbendtran" ref="a288565a6579bc9125390c752be829804" args="(KCDB *db, int32_t commit)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a288565a6579bc9125390c752be829804">kcdbendtran</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>commit</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>End transaction. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">commit</td><td>true to commit the transaction, or false to abort the transaction. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a853dea5181512c82535be1c0e32f765f"></a><!-- doxytag: member="kclangc.h::kcdbclear" ref="a853dea5181512c82535be1c0e32f765f" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a853dea5181512c82535be1c0e32f765f">kcdbclear</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove all records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ad2b07256a5236ba981be4a863ada8e43"></a><!-- doxytag: member="kclangc.h::kcdbdumpsnap" ref="ad2b07256a5236ba981be4a863ada8e43" args="(KCDB *db, const char *dest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#ad2b07256a5236ba981be4a863ada8e43">kcdbdumpsnap</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dump records into a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">dest</td><td>the path of the destination file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af283ad00d5f46edd883356a4b3f9e979"></a><!-- doxytag: member="kclangc.h::kcdbloadsnap" ref="af283ad00d5f46edd883356a4b3f9e979" args="(KCDB *db, const char *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#af283ad00d5f46edd883356a4b3f9e979">kcdbloadsnap</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load records from a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">src</td><td>the path of the source file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="afa5d9b2da776853efae3abb20ad562c4"></a><!-- doxytag: member="kclangc.h::kcdbcount" ref="afa5d9b2da776853efae3abb20ad562c4" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#afa5d9b2da776853efae3abb20ad562c4">kcdbcount</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the number of records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a278ea62b6ba5c9cabeadc77a1cde213c"></a><!-- doxytag: member="kclangc.h::kcdbsize" ref="a278ea62b6ba5c9cabeadc77a1cde213c" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a278ea62b6ba5c9cabeadc77a1cde213c">kcdbsize</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the database file in bytes, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a87de7082c3f19fd255b431f0ccb92f44"></a><!-- doxytag: member="kclangc.h::kcdbpath" ref="a87de7082c3f19fd255b431f0ccb92f44" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#a87de7082c3f19fd255b431f0ccb92f44">kcdbpath</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the path of the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the path of the database file, or an empty string on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a156561acce1ad4f2db9c00f1b5c01e7b"></a><!-- doxytag: member="kclangc.h::kcdbstatus" ref="a156561acce1ad4f2db9c00f1b5c01e7b" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#a156561acce1ad4f2db9c00f1b5c01e7b">kcdbstatus</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the miscellaneous status information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the result string of tab saparated values, or NULL on failure. Each line consists of the attribute name and its value separated by a tab character. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a8027a75ab70beebb345b1e6d7f7d63e9"></a><!-- doxytag: member="kclangc.h::kcdbmatchprefix" ref="a8027a75ab70beebb345b1e6d7f7d63e9" args="(KCDB *db, const char *prefix, char **strary, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a8027a75ab70beebb345b1e6d7f7d63e9">kcdbmatchprefix</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>strary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get keys matching a prefix string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">prefix</td><td>the prefix string. </td></tr>
    <tr><td class="paramname">strary</td><td>an array to contain the result. Its size must be sufficient. </td></tr>
    <tr><td class="paramname">max</td><td>the maximum number to retrieve. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of retrieved keys or -1 on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of each element of the result should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a0433b985ddbca6cdb68830fdac047d8a"></a><!-- doxytag: member="kclangc.h::kcdbmatchregex" ref="a0433b985ddbca6cdb68830fdac047d8a" args="(KCDB *db, const char *regex, char **strary, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a0433b985ddbca6cdb68830fdac047d8a">kcdbmatchregex</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>regex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>strary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get keys matching a regular expression string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">regex</td><td>the regular expression string. </td></tr>
    <tr><td class="paramname">strary</td><td>an array to contain the result. Its size must be sufficient. </td></tr>
    <tr><td class="paramname">max</td><td>the maximum number to retrieve. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of retrieved keys or -1 on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of each element of the result should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="af600d7192bed661007f7e2094782fa10"></a><!-- doxytag: member="kclangc.h::kcdbmatchsimilar" ref="af600d7192bed661007f7e2094782fa10" args="(KCDB *db, const char *origin, uint32_t range, int32_t utf, char **strary, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#af600d7192bed661007f7e2094782fa10">kcdbmatchsimilar</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>range</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>utf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>strary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get keys similar to a string in terms of the levenshtein distance. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">origin</td><td>the origin string. </td></tr>
    <tr><td class="paramname">range</td><td>the maximum distance of keys to adopt. </td></tr>
    <tr><td class="paramname">utf</td><td>flag to treat keys as UTF-8 strings. </td></tr>
    <tr><td class="paramname">strary</td><td>an array to contain the result. Its size must be sufficient. </td></tr>
    <tr><td class="paramname">max</td><td>the maximum number to retrieve. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of retrieved keys or -1 on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of each element of the result should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a20e630cadb0b3518c13c9ca6cff60aed"></a><!-- doxytag: member="kclangc.h::kcdbmerge" ref="a20e630cadb0b3518c13c9ca6cff60aed" args="(KCDB *db, KCDB **srcary, size_t srcnum, uint32_t mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a20e630cadb0b3518c13c9ca6cff60aed">kcdbmerge</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> **&#160;</td>
          <td class="paramname"><em>srcary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>srcnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Merge records from other databases. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
    <tr><td class="paramname">srcary</td><td>an array of the source detabase objects. </td></tr>
    <tr><td class="paramname">srcnum</td><td>the number of the elements of the source array. </td></tr>
    <tr><td class="paramname">mode</td><td>the merge mode. KCMSET to overwrite the existing value, KCMADD to keep the existing value, KCMREPLACE to modify the existing record only, KCMAPPEND to append the new value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="adccaf4771f7804511791af33a316e0ba"></a><!-- doxytag: member="kclangc.h::kcdbcursor" ref="adccaf4771f7804511791af33a316e0ba" args="(KCDB *db)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCCUR.html">KCCUR</a>* <a class="el" href="kclangc_8h.html#adccaf4771f7804511791af33a316e0ba">kcdbcursor</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCDB.html">KCDB</a> *&#160;</td>
          <td class="paramname"><em>db</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a polymorphic cursor object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">db</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the return value is the created cursor object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kccurdel function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a88d85075827598fa94c6fd4c3430389f"></a><!-- doxytag: member="kclangc.h::kccurdel" ref="a88d85075827598fa94c6fd4c3430389f" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a88d85075827598fa94c6fd4c3430389f">kccurdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a cursor object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>the cursor object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7ca1819141a1554397bbfede6d6f325e"></a><!-- doxytag: member="kclangc.h::kccuraccept" ref="a7ca1819141a1554397bbfede6d6f325e" args="(KCCUR *cur, KCVISITFULL fullproc, void *opq, int32_t writable, int32_t step)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a7ca1819141a1554397bbfede6d6f325e">kccuraccept</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#ad5322730d6c138c6c32bd501fc2c09e3">KCVISITFULL</a>&#160;</td>
          <td class="paramname"><em>fullproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>writable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>step</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept a visitor to the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">fullproc</td><td>a call back function to visit a record. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back functions. </td></tr>
    <tr><td class="paramname">writable</td><td>true for writable operation, or false for read-only operation. </td></tr>
    <tr><td class="paramname">step</td><td>true to move the cursor to the next record, or false for no move. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation for each record is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="abf07e20809ce5927f81ed055e0c8c637"></a><!-- doxytag: member="kclangc.h::kccursetvalue" ref="abf07e20809ce5927f81ed055e0c8c637" args="(KCCUR *cur, const char *vbuf, size_t vsiz, int32_t step)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#abf07e20809ce5927f81ed055e0c8c637">kccursetvalue</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>step</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
    <tr><td class="paramname">step</td><td>true to move the cursor to the next record, or false for no move. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a0867dbd783e2a23c1a6be653d8e41bdd"></a><!-- doxytag: member="kclangc.h::kccurremove" ref="a0867dbd783e2a23c1a6be653d8e41bdd" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a0867dbd783e2a23c1a6be653d8e41bdd">kccurremove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, false is returned. The cursor is moved to the next record implicitly. </dd></dl>

</div>
</div>
<a class="anchor" id="a1f15ef59f87b34eeeb4374c847d67b4b"></a><!-- doxytag: member="kclangc.h::kccurgetkey" ref="a1f15ef59f87b34eeeb4374c847d67b4b" args="(KCCUR *cur, size_t *sp, int32_t step)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#a1f15ef59f87b34eeeb4374c847d67b4b">kccurgetkey</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>step</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the key of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">step</td><td>true to move the cursor to the next record, or false for no move. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the key region of the current record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If the cursor is invalidated, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a5ebbb378e935cd773107503d7d4d466c"></a><!-- doxytag: member="kclangc.h::kccurgetvalue" ref="a5ebbb378e935cd773107503d7d4d466c" args="(KCCUR *cur, size_t *sp, int32_t step)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#a5ebbb378e935cd773107503d7d4d466c">kccurgetvalue</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>step</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">step</td><td>true to move the cursor to the next record, or false for no move. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the current record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If the cursor is invalidated, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a543b0095fb011f3ae42424460190d25a"></a><!-- doxytag: member="kclangc.h::kccurget" ref="a543b0095fb011f3ae42424460190d25a" args="(KCCUR *cur, size_t *ksp, const char **vbp, size_t *vsp, int32_t step)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#a543b0095fb011f3ae42424460190d25a">kccurget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>ksp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>vbp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>vsp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>step</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pair of the key and the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">ksp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">vbp</td><td>the pointer to the variable into which the pointer to the value region is assigned. </td></tr>
    <tr><td class="paramname">vsp</td><td>the pointer to the variable into which the size of the value region is assigned. </td></tr>
    <tr><td class="paramname">step</td><td>true to move the cursor to the next record, or false for no move. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the pair of the key region, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If the cursor is invalidated, NULL is returned. Because an additional zero code is appended at the end of each region of the key and the value, each region can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a1cfe36e6e100984b0f0a496f22fcff57"></a><!-- doxytag: member="kclangc.h::kccurseize" ref="a1cfe36e6e100984b0f0a496f22fcff57" args="(KCCUR *cur, size_t *ksp, const char **vbp, size_t *vsp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#a1cfe36e6e100984b0f0a496f22fcff57">kccurseize</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>ksp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>vbp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>vsp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pair of the key and the value of the current record and remove it atomically. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">ksp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">vbp</td><td>the pointer to the variable into which the pointer to the value region is assigned. </td></tr>
    <tr><td class="paramname">vsp</td><td>the pointer to the variable into which the size of the value region is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the pair of the key region, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If the cursor is invalidated, NULL is returned. Because an additional zero code is appended at the end of each region of the key and the value, each region can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. The cursor is moved to the next record implicitly. </dd></dl>

</div>
</div>
<a class="anchor" id="a086c2e825133e414430ebd9fa010c9e0"></a><!-- doxytag: member="kclangc.h::kccurjump" ref="a086c2e825133e414430ebd9fa010c9e0" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a086c2e825133e414430ebd9fa010c9e0">kccurjump</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jump the cursor to the first record for forward scan. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a6b02b505678f971be270e3ba9a1b4d76"></a><!-- doxytag: member="kclangc.h::kccurjumpkey" ref="a6b02b505678f971be270e3ba9a1b4d76" args="(KCCUR *cur, const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a6b02b505678f971be270e3ba9a1b4d76">kccurjumpkey</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jump the cursor to a record for forward scan. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aea97152d108e403d57d6de9b9b9c905c"></a><!-- doxytag: member="kclangc.h::kccurjumpback" ref="aea97152d108e403d57d6de9b9b9c905c" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#aea97152d108e403d57d6de9b9b9c905c">kccurjumpback</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jump the cursor to the last record for backward scan. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This method is dedicated to tree databases. Some database types, especially hash databases, may provide a dummy implementation. </dd></dl>

</div>
</div>
<a class="anchor" id="a6a64ab5f495da06c7361f010caa9371a"></a><!-- doxytag: member="kclangc.h::kccurjumpbackkey" ref="a6a64ab5f495da06c7361f010caa9371a" args="(KCCUR *cur, const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a6a64ab5f495da06c7361f010caa9371a">kccurjumpbackkey</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Jump the cursor to a record for backward scan. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This method is dedicated to tree databases. Some database types, especially hash databases, will provide a dummy implementation. </dd></dl>

</div>
</div>
<a class="anchor" id="a8eb7192456824eaad2e15444704e9055"></a><!-- doxytag: member="kclangc.h::kccurstep" ref="a8eb7192456824eaad2e15444704e9055" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a8eb7192456824eaad2e15444704e9055">kccurstep</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Step the cursor to the next record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="afeb16bd9461ab3f5dc2d21fa3ba28213"></a><!-- doxytag: member="kclangc.h::kccurstepback" ref="afeb16bd9461ab3f5dc2d21fa3ba28213" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#afeb16bd9461ab3f5dc2d21fa3ba28213">kccurstepback</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Step the cursor to the previous record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This method is dedicated to tree databases. Some database types, especially hash databases, may provide a dummy implementation. </dd></dl>

</div>
</div>
<a class="anchor" id="a20a80ae0156692ad33cd0b8bfcf7eeab"></a><!-- doxytag: member="kclangc.h::kccurdb" ref="a20a80ae0156692ad33cd0b8bfcf7eeab" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCDB.html">KCDB</a>* <a class="el" href="kclangc_8h.html#a20a80ae0156692ad33cd0b8bfcf7eeab">kccurdb</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the database object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the database object. </dd></dl>

</div>
</div>
<a class="anchor" id="a479ed6830ab7fb85b146bff54f67df23"></a><!-- doxytag: member="kclangc.h::kccurecode" ref="a479ed6830ab7fb85b146bff54f67df23" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a479ed6830ab7fb85b146bff54f67df23">kccurecode</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the code of the last happened error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the code of the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="a46daaae1cd681d037e3f45fb6028f03c"></a><!-- doxytag: member="kclangc.h::kccuremsg" ref="a46daaae1cd681d037e3f45fb6028f03c" args="(KCCUR *cur)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#a46daaae1cd681d037e3f45fb6028f03c">kccuremsg</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCCUR.html">KCCUR</a> *&#160;</td>
          <td class="paramname"><em>cur</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the supplement message of the last happened error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cur</td><td>a cursor object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the supplement message of the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="a4c3a7a5e0fec5f77b66c34f10bdb72f0"></a><!-- doxytag: member="kclangc.h::kcidxnew" ref="a4c3a7a5e0fec5f77b66c34f10bdb72f0" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCIDX.html">KCIDX</a>* <a class="el" href="kclangc_8h.html#a4c3a7a5e0fec5f77b66c34f10bdb72f0">kcidxnew</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create an index database object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the created database object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kcidxdel function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="aca5bdd1e7f1f83ce610ada835686ccf1"></a><!-- doxytag: member="kclangc.h::kcidxdel" ref="aca5bdd1e7f1f83ce610ada835686ccf1" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#aca5bdd1e7f1f83ce610ada835686ccf1">kcidxdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a database object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>the database object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aba21cd8592159dbe940839595322e9d9"></a><!-- doxytag: member="kclangc.h::kcidxopen" ref="aba21cd8592159dbe940839595322e9d9" args="(KCIDX *idx, const char *path, uint32_t mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#aba21cd8592159dbe940839595322e9d9">kcidxopen</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open a database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">path</td><td>the path of a database file. The same as with the polymorphic database. </td></tr>
    <tr><td class="paramname">mode</td><td>the connection mode. The same as with the polymorphic database. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aa5427b81b0d3aa636f3f12dcdf34a1ee"></a><!-- doxytag: member="kclangc.h::kcidxclose" ref="aa5427b81b0d3aa636f3f12dcdf34a1ee" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#aa5427b81b0d3aa636f3f12dcdf34a1ee">kcidxclose</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a85c6e16b690e3693ff97cf8e025f4713"></a><!-- doxytag: member="kclangc.h::kcidxecode" ref="a85c6e16b690e3693ff97cf8e025f4713" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a85c6e16b690e3693ff97cf8e025f4713">kcidxecode</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the code of the last happened error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the code of the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="a199d0a9fc2806c8c7bfb99a242a37e96"></a><!-- doxytag: member="kclangc.h::kcidxemsg" ref="a199d0a9fc2806c8c7bfb99a242a37e96" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#a199d0a9fc2806c8c7bfb99a242a37e96">kcidxemsg</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the supplement message of the last happened error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the supplement message of the last happened error. </dd></dl>

</div>
</div>
<a class="anchor" id="a7b62b6dd7f2cc4b856c338e1c4b9a310"></a><!-- doxytag: member="kclangc.h::kcidxset" ref="a7b62b6dd7f2cc4b856c338e1c4b9a310" args="(KCIDX *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a7b62b6dd7f2cc4b856c338e1c4b9a310">kcidxset</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the value is overwritten. </dd></dl>

</div>
</div>
<a class="anchor" id="aabc53127cbd1baca3d8f02a4aefb8bd1"></a><!-- doxytag: member="kclangc.h::kcidxadd" ref="aabc53127cbd1baca3d8f02a4aefb8bd1" args="(KCIDX *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#aabc53127cbd1baca3d8f02a4aefb8bd1">kcidxadd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the record is not modified and false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="afe7455a73583ff23c667efc8d288b528"></a><!-- doxytag: member="kclangc.h::kcidxreplace" ref="afe7455a73583ff23c667efc8d288b528" args="(KCIDX *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#afe7455a73583ff23c667efc8d288b528">kcidxreplace</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, no new record is created and false is returned. If the corresponding record exists, the value is modified. </dd></dl>

</div>
</div>
<a class="anchor" id="aef481e949500e55c5bed07da500b1a3e"></a><!-- doxytag: member="kclangc.h::kcidxappend" ref="aef481e949500e55c5bed07da500b1a3e" args="(KCIDX *idx, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#aef481e949500e55c5bed07da500b1a3e">kcidxappend</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the given value is appended at the end of the existing value. </dd></dl>

</div>
</div>
<a class="anchor" id="a2ab33197891a20c64f6957cea9e539a9"></a><!-- doxytag: member="kclangc.h::kcidxremove" ref="a2ab33197891a20c64f6957cea9e539a9" args="(KCIDX *idx, const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a2ab33197891a20c64f6957cea9e539a9">kcidxremove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="ad540c37d3fcb8d73fe54d622ca93aa73"></a><!-- doxytag: member="kclangc.h::kcidxget" ref="ad540c37d3fcb8d73fe54d622ca93aa73" args="(KCIDX *idx, const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#ad540c37d3fcb8d73fe54d622ca93aa73">kcidxget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, NULL is returned. Because an additional zero code is appended at the end of the region of the return value, the return value can be treated as a C-style string. The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a637b170c68efe467537473067c5f3220"></a><!-- doxytag: member="kclangc.h::kcidxsync" ref="a637b170c68efe467537473067c5f3220" args="(KCIDX *idx, int32_t hard, KCFILEPROC proc, void *opq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a637b170c68efe467537473067c5f3220">kcidxsync</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>hard</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="kclangc_8h.html#a55e9f27415a9ee1d641cef35cc518b8f">KCFILEPROC</a>&#160;</td>
          <td class="paramname"><em>proc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synchronize updated contents with the file and the device. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
    <tr><td class="paramname">hard</td><td>true for physical synchronization with the device, or false for logical synchronization with the file system. </td></tr>
    <tr><td class="paramname">proc</td><td>a postprocessor call back function. If it is NULL, no postprocessing is performed. </td></tr>
    <tr><td class="paramname">opq</td><td>an opaque pointer to be given to the call back function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The operation of the postprocessor is performed atomically and other threads accessing the same record are blocked. To avoid deadlock, any explicit database operation must not be performed in this function. </dd></dl>

</div>
</div>
<a class="anchor" id="a18e11b44bafb2dd93ed4859245d307ad"></a><!-- doxytag: member="kclangc.h::kcidxclear" ref="a18e11b44bafb2dd93ed4859245d307ad" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a18e11b44bafb2dd93ed4859245d307ad">kcidxclear</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove all records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ac1e7aab80142837d31141d6fe863e6af"></a><!-- doxytag: member="kclangc.h::kcidxcount" ref="ac1e7aab80142837d31141d6fe863e6af" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#ac1e7aab80142837d31141d6fe863e6af">kcidxcount</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the number of records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of records, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a339b7dffd204463e0766b9026a40b71d"></a><!-- doxytag: member="kclangc.h::kcidxsize" ref="a339b7dffd204463e0766b9026a40b71d" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t <a class="el" href="kclangc_8h.html#a339b7dffd204463e0766b9026a40b71d">kcidxsize</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of the database file in bytes, or -1 on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ad7047962dd3cfa4dc8304762776b2223"></a><!-- doxytag: member="kclangc.h::kcidxpath" ref="ad7047962dd3cfa4dc8304762776b2223" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#ad7047962dd3cfa4dc8304762776b2223">kcidxpath</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the path of the database file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the path of the database file, or an empty string on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="acd7a4fd193d77caff0fe136563327053"></a><!-- doxytag: member="kclangc.h::kcidxstatus" ref="acd7a4fd193d77caff0fe136563327053" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="kclangc_8h.html#acd7a4fd193d77caff0fe136563327053">kcidxstatus</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the miscellaneous status information. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>a database object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the result string of tab saparated values, or NULL on failure. Each line consists of the attribute name and its value separated by a tab character. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The region of the return value should be released with the kcfree function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="a82c6761ba8d14a2f9e7eb7c7da77d3c3"></a><!-- doxytag: member="kclangc.h::kcidxrevealinnerdb" ref="a82c6761ba8d14a2f9e7eb7c7da77d3c3" args="(KCIDX *idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCDB.html">KCDB</a>* <a class="el" href="kclangc_8h.html#a82c6761ba8d14a2f9e7eb7c7da77d3c3">kcidxrevealinnerdb</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCIDX.html">KCIDX</a> *&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reveal the inner database object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the inner database object, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aec6afb03c6a6609eca245447fe91902c"></a><!-- doxytag: member="kclangc.h::kcmapnew" ref="aec6afb03c6a6609eca245447fe91902c" args="(size_t bnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCMAP.html">KCMAP</a>* <a class="el" href="kclangc_8h.html#aec6afb03c6a6609eca245447fe91902c">kcmapnew</a> </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bnum</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string hash map object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">bnum</td><td>the number of buckets of the hash table. If it is not more than 0, the default setting 31 is specified. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the created map object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kcmapdel function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="ad2e7538e61bdd240201ad30a0349a973"></a><!-- doxytag: member="kclangc.h::kcmapdel" ref="ad2e7538e61bdd240201ad30a0349a973" args="(KCMAP *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#ad2e7538e61bdd240201ad30a0349a973">kcmapdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a map object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3cd73b1b4ed2429ad5baaef1b7d11da4"></a><!-- doxytag: member="kclangc.h::kcmapset" ref="a3cd73b1b4ed2429ad5baaef1b7d11da4" args="(KCMAP *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a3cd73b1b4ed2429ad5baaef1b7d11da4">kcmapset</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the value is overwritten. </dd></dl>

</div>
</div>
<a class="anchor" id="a46b4c36a88440b8cfc212563214221a4"></a><!-- doxytag: member="kclangc.h::kcmapadd" ref="a46b4c36a88440b8cfc212563214221a4" args="(KCMAP *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a46b4c36a88440b8cfc212563214221a4">kcmapadd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the record is not modified and false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="a4a2c51212c27411ca2b71b66a86ed482"></a><!-- doxytag: member="kclangc.h::kcmapreplace" ref="a4a2c51212c27411ca2b71b66a86ed482" args="(KCMAP *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a4a2c51212c27411ca2b71b66a86ed482">kcmapreplace</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, no new record is created and false is returned. If the corresponding record exists, the value is modified. </dd></dl>

</div>
</div>
<a class="anchor" id="af1005c10566671604d9ed335df1a1b10"></a><!-- doxytag: member="kclangc.h::kcmapappend" ref="af1005c10566671604d9ed335df1a1b10" args="(KCMAP *map, const char *kbuf, size_t ksiz, const char *vbuf, size_t vsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#af1005c10566671604d9ed335df1a1b10">kcmapappend</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vsiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">vbuf</td><td>the pointer to the value region. </td></tr>
    <tr><td class="paramname">vsiz</td><td>the size of the value region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, a new record is created. If the corresponding record exists, the given value is appended at the end of the existing value. </dd></dl>

</div>
</div>
<a class="anchor" id="ad3e7c9142df5d21ed8f1964715c52711"></a><!-- doxytag: member="kclangc.h::kcmapremove" ref="ad3e7c9142df5d21ed8f1964715c52711" args="(KCMAP *map, const char *kbuf, size_t ksiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#ad3e7c9142df5d21ed8f1964715c52711">kcmapremove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true on success, or false on failure. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>If no record corresponds to the key, false is returned. </dd></dl>

</div>
</div>
<a class="anchor" id="ac9fb108d0134e439a601557eb9ec18c5"></a><!-- doxytag: member="kclangc.h::kcmapget" ref="ac9fb108d0134e439a601557eb9ec18c5" args="(KCMAP *map, const char *kbuf, size_t ksiz, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#ac9fb108d0134e439a601557eb9ec18c5">kcmapget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>kbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ksiz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the value of a record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
    <tr><td class="paramname">kbuf</td><td>the pointer to the key region. </td></tr>
    <tr><td class="paramname">ksiz</td><td>the size of the key region. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the corresponding record, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a4be91c8b73e45cd89ec61b7066d9d5de"></a><!-- doxytag: member="kclangc.h::kcmapclear" ref="a4be91c8b73e45cd89ec61b7066d9d5de" args="(KCMAP *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a4be91c8b73e45cd89ec61b7066d9d5de">kcmapclear</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove all records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aae4b3633b3373b1dbbf61fd784d60c31"></a><!-- doxytag: member="kclangc.h::kcmapcount" ref="aae4b3633b3373b1dbbf61fd784d60c31" args="(KCMAP *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="kclangc_8h.html#aae4b3633b3373b1dbbf61fd784d60c31">kcmapcount</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the number of records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>the map object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of records. </dd></dl>

</div>
</div>
<a class="anchor" id="abcd34c88c2467f6d89afea605cbfe305"></a><!-- doxytag: member="kclangc.h::kcmapiterator" ref="abcd34c88c2467f6d89afea605cbfe305" args="(KCMAP *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCMAPITER.html">KCMAPITER</a>* <a class="el" href="kclangc_8h.html#abcd34c88c2467f6d89afea605cbfe305">kcmapiterator</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string hash map iterator object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>a map object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the return value is the created iterator object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kcmapiterdel function when it is no longer in use. </dd>
<dd>
This object will not be invalidated even when the map object is updated once. However, phantom records may be retrieved if they are removed after creation of each iterator. </dd></dl>

</div>
</div>
<a class="anchor" id="a88ad0d468a0e202bf04d34ee92104cc3"></a><!-- doxytag: member="kclangc.h::kcmapiterdel" ref="a88ad0d468a0e202bf04d34ee92104cc3" args="(KCMAPITER *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a88ad0d468a0e202bf04d34ee92104cc3">kcmapiterdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPITER.html">KCMAPITER</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy an iterator object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a11907a18c104aba1f246587c935e66c7"></a><!-- doxytag: member="kclangc.h::kcmapitergetkey" ref="a11907a18c104aba1f246587c935e66c7" args="(KCMAPITER *iter, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#a11907a18c104aba1f246587c935e66c7">kcmapitergetkey</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPITER.html">KCMAPITER</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the key of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator object. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the key region of the current record, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a48479e75eacff4ed4220103b2d88424c"></a><!-- doxytag: member="kclangc.h::kcmapitergetvalue" ref="a48479e75eacff4ed4220103b2d88424c" args="(KCMAPITER *iter, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#a48479e75eacff4ed4220103b2d88424c">kcmapitergetvalue</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPITER.html">KCMAPITER</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator object. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the current record, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ac736d5db9fe233947090f50a5b75754d"></a><!-- doxytag: member="kclangc.h::kcmapiterget" ref="ac736d5db9fe233947090f50a5b75754d" args="(KCMAPITER *iter, size_t *ksp, const char **vbp, size_t *vsp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#ac736d5db9fe233947090f50a5b75754d">kcmapiterget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPITER.html">KCMAPITER</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>ksp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>vbp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>vsp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pair of the key and the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator object. </td></tr>
    <tr><td class="paramname">ksp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">vbp</td><td>the pointer to the variable into which the pointer to the value region is assigned. </td></tr>
    <tr><td class="paramname">vsp</td><td>the pointer to the variable into which the size of the value region is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the key region, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ae2108c189f1309f3133ecd4ffd541dcc"></a><!-- doxytag: member="kclangc.h::kcmapiterstep" ref="ae2108c189f1309f3133ecd4ffd541dcc" args="(KCMAPITER *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#ae2108c189f1309f3133ecd4ffd541dcc">kcmapiterstep</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPITER.html">KCMAPITER</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Step the cursor to the next record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a037aeb1fefa0ac4ba3b6f98bbd162171"></a><!-- doxytag: member="kclangc.h::kcmapsorter" ref="a037aeb1fefa0ac4ba3b6f98bbd162171" args="(KCMAP *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a>* <a class="el" href="kclangc_8h.html#a037aeb1fefa0ac4ba3b6f98bbd162171">kcmapsorter</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAP.html">KCMAP</a> *&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string hash map sorter object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">map</td><td>a map object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the return value is the created sorter object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kcmapsortdel function when it is no longer in use. </dd>
<dd>
This object will not be invalidated even when the map object is updated once. However, phantom records may be retrieved if they are removed after creation of each sorter. </dd></dl>

</div>
</div>
<a class="anchor" id="a76e1eea983984bb1d4c364d1e6472bca"></a><!-- doxytag: member="kclangc.h::kcmapsortdel" ref="a76e1eea983984bb1d4c364d1e6472bca" args="(KCMAPSORT *sort)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a76e1eea983984bb1d4c364d1e6472bca">kcmapsortdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *&#160;</td>
          <td class="paramname"><em>sort</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy an sorter object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sort</td><td>the sorter object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af23cc5f635d5c3d1f75c2fc5124f3a8c"></a><!-- doxytag: member="kclangc.h::kcmapsortgetkey" ref="af23cc5f635d5c3d1f75c2fc5124f3a8c" args="(KCMAPSORT *sort, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#af23cc5f635d5c3d1f75c2fc5124f3a8c">kcmapsortgetkey</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *&#160;</td>
          <td class="paramname"><em>sort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the key of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sort</td><td>the sorter object. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the key region of the current record, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aa2a70cb588d9dfe229bb3988732db172"></a><!-- doxytag: member="kclangc.h::kcmapsortgetvalue" ref="aa2a70cb588d9dfe229bb3988732db172" args="(KCMAPSORT *sort, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#aa2a70cb588d9dfe229bb3988732db172">kcmapsortgetvalue</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *&#160;</td>
          <td class="paramname"><em>sort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sort</td><td>the sorter object. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the value region of the current record, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aa8bae5baeeae1c7f1c29304dc541c9cd"></a><!-- doxytag: member="kclangc.h::kcmapsortget" ref="aa8bae5baeeae1c7f1c29304dc541c9cd" args="(KCMAPSORT *sort, size_t *ksp, const char **vbp, size_t *vsp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#aa8bae5baeeae1c7f1c29304dc541c9cd">kcmapsortget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *&#160;</td>
          <td class="paramname"><em>sort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>ksp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>vbp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>vsp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pair of the key and the value of the current record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sort</td><td>the sorter object. </td></tr>
    <tr><td class="paramname">ksp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
    <tr><td class="paramname">vbp</td><td>the pointer to the variable into which the pointer to the value region is assigned. </td></tr>
    <tr><td class="paramname">vsp</td><td>the pointer to the variable into which the size of the value region is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the key region, or NULL on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a385064d2e20cd8b80bc339b4a6f8a453"></a><!-- doxytag: member="kclangc.h::kcmapsortstep" ref="a385064d2e20cd8b80bc339b4a6f8a453" args="(KCMAPSORT *sort)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a385064d2e20cd8b80bc339b4a6f8a453">kcmapsortstep</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCMAPSORT.html">KCMAPSORT</a> *&#160;</td>
          <td class="paramname"><em>sort</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Step the cursor to the next record. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sort</td><td>the sorter object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a33d505914ab0dae7d6bff4499158f4e4"></a><!-- doxytag: member="kclangc.h::kclistnew" ref="a33d505914ab0dae7d6bff4499158f4e4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structKCLIST.html">KCLIST</a>* <a class="el" href="kclangc_8h.html#a33d505914ab0dae7d6bff4499158f4e4">kclistnew</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string array list object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the created list object. </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The object of the return value should be released with the kclistdel function when it is no longer in use. </dd></dl>

</div>
</div>
<a class="anchor" id="aebc78e91b44a3f0fb13d12965135d036"></a><!-- doxytag: member="kclangc.h::kclistdel" ref="aebc78e91b44a3f0fb13d12965135d036" args="(KCLIST *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#aebc78e91b44a3f0fb13d12965135d036">kclistdel</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a list object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a84c60beea70c341884029ab54cca0b51"></a><!-- doxytag: member="kclangc.h::kclistpush" ref="a84c60beea70c341884029ab54cca0b51" args="(KCLIST *list, const char *buf, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a84c60beea70c341884029ab54cca0b51">kclistpush</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a record at the bottom of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
    <tr><td class="paramname">buf</td><td>the pointer to the record region. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the record region. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a710e3c69e0e1b3e272822d054296ac92"></a><!-- doxytag: member="kclangc.h::kclistpop" ref="a710e3c69e0e1b3e272822d054296ac92" args="(KCLIST *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#a710e3c69e0e1b3e272822d054296ac92">kclistpop</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record at the bottom of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the operation success, or false if there is no record in the list. </dd></dl>

</div>
</div>
<a class="anchor" id="a2f271282438133f5212dd30b804684fb"></a><!-- doxytag: member="kclangc.h::kclistunshift" ref="a2f271282438133f5212dd30b804684fb" args="(KCLIST *list, const char *buf, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a2f271282438133f5212dd30b804684fb">kclistunshift</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a record at the top of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
    <tr><td class="paramname">buf</td><td>the pointer to the record region. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the record region. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad1e3b7f8de94f4e44231bb7d4f7b4307"></a><!-- doxytag: member="kclangc.h::kclistshift" ref="ad1e3b7f8de94f4e44231bb7d4f7b4307" args="(KCLIST *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t <a class="el" href="kclangc_8h.html#ad1e3b7f8de94f4e44231bb7d4f7b4307">kclistshift</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record at the top of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the operation success, or false if there is no record in the list. </dd></dl>

</div>
</div>
<a class="anchor" id="a3f15ce9cc39e2944ed7e4c0752ee47f6"></a><!-- doxytag: member="kclangc.h::kclistinsert" ref="a3f15ce9cc39e2944ed7e4c0752ee47f6" args="(KCLIST *list, const char *buf, size_t size, size_t idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a3f15ce9cc39e2944ed7e4c0752ee47f6">kclistinsert</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a record at the position of the given index of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
    <tr><td class="paramname">buf</td><td>the pointer to the record region. </td></tr>
    <tr><td class="paramname">size</td><td>the size of the record region. </td></tr>
    <tr><td class="paramname">idx</td><td>the index of the position. It must be equal to or less than the number of records. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a36ee03aba754a22629054e0bc257857c"></a><!-- doxytag: member="kclangc.h::kclistremove" ref="a36ee03aba754a22629054e0bc257857c" args="(KCLIST *list, size_t idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#a36ee03aba754a22629054e0bc257857c">kclistremove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a record at the position of the given index of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
    <tr><td class="paramname">idx</td><td>the index of the position. It must be less than the number of records. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab71a366079883102f1f934f092f17b07"></a><!-- doxytag: member="kclangc.h::kclistget" ref="ab71a366079883102f1f934f092f17b07" args="(KCLIST *list, size_t idx, size_t *sp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="kclangc_8h.html#ab71a366079883102f1f934f092f17b07">kclistget</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>sp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve a record at the position of the given index of the list. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
    <tr><td class="paramname">idx</td><td>the index of the position. It must be less than the number of records. </td></tr>
    <tr><td class="paramname">sp</td><td>the pointer to the variable into which the size of the region of the return value is assigned. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the pointer to the region of the retrieved record. </dd></dl>

</div>
</div>
<a class="anchor" id="ae6561c06e7b4f1f8dc48c033bcde33b5"></a><!-- doxytag: member="kclangc.h::kclistclear" ref="ae6561c06e7b4f1f8dc48c033bcde33b5" args="(KCLIST *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="kclangc_8h.html#ae6561c06e7b4f1f8dc48c033bcde33b5">kclistclear</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove all records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4a43f3fe5de2dd7d22aa9f788ff727aa"></a><!-- doxytag: member="kclangc.h::kclistcount" ref="a4a43f3fe5de2dd7d22aa9f788ff727aa" args="(KCLIST *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="kclangc_8h.html#a4a43f3fe5de2dd7d22aa9f788ff727aa">kclistcount</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structKCLIST.html">KCLIST</a> *&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the number of records. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list object. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of records. </dd></dl>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a2b538a7a564d0fbd9fe92d9877b4bcb0"></a><!-- doxytag: member="kclangc.h::KCVERSION" ref="a2b538a7a564d0fbd9fe92d9877b4bcb0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* const <a class="el" href="kclangc_8h.html#a2b538a7a564d0fbd9fe92d9877b4bcb0">KCVERSION</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The package version. </p>

</div>
</div>
<a class="anchor" id="a64c59ac34c88a862d2066d9097b09504"></a><!-- doxytag: member="kclangc.h::KCVISNOP" ref="a64c59ac34c88a862d2066d9097b09504" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* const <a class="el" href="kclangc_8h.html#a64c59ac34c88a862d2066d9097b09504">KCVISNOP</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Special pointer for no operation by the visiting function. </p>

</div>
</div>
<a class="anchor" id="a8db7ac3c4e7d52ee1106a527a1bae0c8"></a><!-- doxytag: member="kclangc.h::KCVISREMOVE" ref="a8db7ac3c4e7d52ee1106a527a1bae0c8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* const <a class="el" href="kclangc_8h.html#a8db7ac3c4e7d52ee1106a527a1bae0c8">KCVISREMOVE</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Special pointer to remove the record by the visiting function. </p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Fri May 25 2012 01:21:35 for Kyoto Cabinet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
